You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 05:36:09