PHP表单中button点击非预期修改URL,仅需触发alert如何解决
问题根源
<button> 标签未指定 type 属性时,放在 <form> 内默认的类型是 submit,点击后会触发表单的默认提交行为。你的表单未配置 action 和 method 属性,默认会以GET方式提交到当前页面,因此会清空原URL的参数,导致地址变成 index.php?。
解决方案(任选一种即可)
- 方案1:给按钮明确指定
type="button"属性,标识为普通按钮,不会触发表单提交
代码修改示例:<button type="button" onclick="alert('<?php echo $images[$k] ?>')">Click me!</button> - 方案2:在点击事件中阻止默认行为
可以在onclick最后加return false,或者调用event.preventDefault():<button onclick="alert('<?php echo $images[$k] ?>'); return false;">Click me!</button> - 方案3:若整个表单后续都不需要提交,可直接给表单添加提交拦截
<form onsubmit="return false;">
额外优化建议
为了避免PHP输出的变量中包含单引号导致JS语法报错,建议对输出内容做转义处理:
<button type="button" onclick="alert('<?php echo addslashes($images[$k]) ?>')">Click me!</button>
内容的提问来源于stack exchange,提问作者user15249905
相关产品推荐
相关产品推荐

