删除前确认弹窗的Cancel按钮功能失效问题修复
删除确认点Cancel仍执行删除的修复方案
问题原因
- 核心bug:
<a>标签的onClick事件仅调用了myFunction(),未接收函数返回值。函数内部的return false仅能终止函数自身执行,无法拦截<a>标签默认的href跳转行为,因此点击Cancel后浏览器仍会请求delete.php执行删除。 - 额外规范问题:
<a>标签内部嵌套<button>不符合HTML语法规范,易产生异常点击行为,建议移除嵌套的按钮标签。
修复方法
只需要两步调整:
- 把
<a>标签的onClick='myFunction()'修改为onClick='return myFunction()',把函数的布尔返回值传给点击事件,实现默认跳转行为的拦截 - 简化
myFunction逻辑:confirm()本身就会返回布尔值,不需要额外做if判断,直接返回结果即可
修复后完整代码
echo "<a onClick='return myFunction()' href='./delete.php?userID=".$row['userID'] ."'>Delete</a>"; <script> function myFunction() { return confirm("OK to delete?"); } </script>
修复后逻辑:点击删除链接弹出确认框,点Cancel时
confirm返回false,点击事件拦截a标签跳转,不会触发删除;点OK时confirm返回true,正常跳转至删除地址执行操作。
内容的提问来源于stack exchange,提问作者Pul96
相关产品推荐
相关产品推荐

