点击confirm对话框No按钮后代码未停止执行问题求助
问题解决:点击Confirm的No按钮仍跳转页面的修复方法
问题出在哪?
你写的onclick只是调用了checkType()函数,但没把函数的返回值用来阻止a标签的默认跳转行为。a标签点击后本来就会自动跳转到href指定的链接,不管你函数里返回什么,只要没明确阻止,它就会执行跳转。
怎么改?
只需要两步:
- 把
onclick改成onclick="return checkType()",让它接收函数的返回值来决定是否跳转 - 函数逻辑可以简化,直接返回confirm的结果就行(当然你原来的写法也没问题,只是没必要多一个变量)
修改后的JS代码
function checkType(){ if (confirm('Ok or NO?')) { console.log('Ok button clicked!'); return true; } else { console.log('No button clicked'); return false; } } // 嫌麻烦的话可以更简化: // function checkType(){ // const confirmed = confirm('Ok or NO?'); // console.log(confirmed ? 'Ok button clicked!' : 'No button clicked'); // return confirmed; // }
修改后的HTML代码
<tr> <td> <a href="somepage.htm" class="urlLink" title="Activate" onclick="return checkType()"> Activate </a> </td> </tr>
为啥这样管用?
当onclick返回false时,浏览器会直接阻止a标签的默认跳转动作;返回true就正常执行跳转。现在点击No按钮时函数返回false,页面就不会跳去somepage.htm了。
内容的提问来源于stack exchange,提问作者Tan
相关产品推荐
相关产品推荐

