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

表单按钮无法触发SweetAlert2弹窗,请求技术排查

问题排查与修复方案

你的代码存在几个关键问题,导致弹窗无法正常触发:

  • 表单提交默认行为未阻止:按钮是type="submit",点击后会自动提交表单并刷新页面,弹窗还没显示就被页面刷新覆盖了。
  • JavaScript语法错误:$(document).ready()函数末尾缺少闭合的});,导致整个代码块无法执行。
  • 字符串换行不合法:弹窗文本直接换行,JavaScript不允许未转义的字符串跨行,会触发语法错误。
  • SweetAlert2参数过时:新版本SweetAlert2已用icon替代type作为弹窗图标参数(旧版本可能兼容,但建议使用规范写法)。

修正后的完整代码:

<div class="mt-2">
  <button type="submit" class="btn btn-primary me-2" id="issueGear">Issue Gear</button>
  <button type="reset" class="btn btn-outline-secondary">Cancel</button>
</div>

<script type="text/javascript">
$(document).ready(function() {
  $('#issueGear').click(function(e) {
    // 阻止表单默认提交行为
    e.preventDefault();
    
    Swal.fire({
      icon: 'info', // 替换过时的type参数,用info更符合协议提示场景
      title: 'Agreement',
      // 用模板字符串解决换行问题,也可以在每行末尾加反斜杠
      text: `I agree to return all issued items upon my voluntary or involuntary dismissal from the department. If I fail to return any item(s), I may be held responsible for the replacement cost of the item(s).`
    });
  });
}); // 补充缺失的闭合括号
</script>

额外说明:

如果后续需要在用户确认协议后再提交表单,可以在SweetAlert的确认回调里手动触发提交:

Swal.fire({
  // ... 其他参数
}).then((result) => {
  if (result.isConfirmed) {
    // 找到对应表单元素并提交
    document.querySelector('form').submit();
  }
});

内容的提问来源于stack exchange,提问作者austin king

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:34:58