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

添加jQuery表单submit事件后表单无法提交至控制器的原因

问题原因及解决方案

你遇到的问题大概率是这段JS代码在特定场景下中断了表单的默认提交流程,具体原因和修复方法如下:

1. 旧浏览器下console.log引发的JS错误

在IE8及更早的版本中,console对象只有在开发者工具(F12)打开时才会存在。如果用户没打开开发者工具,调用console.log会抛出ReferenceError,导致JS执行中断,浏览器也就不会继续执行表单提交的默认行为。

2. 事件处理未明确允许默认行为

虽然你的代码里没有调用e.preventDefault()或返回false,但如果事件处理函数执行时出现未捕获的错误(比如上面的console不存在问题),会直接终止后续的默认提交流程。

快速修复方案

修改你的JS代码,避免错误并明确允许默认提交:

$("#crmtForm").submit(function (e) {
    // 安全调用console,避免旧浏览器报错
    console && console.log('submit');
    // 明确返回true,告诉浏览器继续执行默认提交
    return true;
});

额外排查点

你也可以检查以下内容排除其他干扰:

  • 确保JS代码在DOM加载完成后执行,包裹在$(document).ready()中:
    $(document).ready(function() {
        $("#crmtForm").submit(function (e) {
            console && console.log('submit');
            return true;
        });
    });
    
    若代码在DOM渲染前执行,$("#crmtForm")找不到元素,事件绑定会失败(不过这不会阻止表单提交,但养成DOM就绪后绑定事件的习惯更稳妥)。
  • 检查表单中隐藏的ListBoxFor元素(style="display:none;")带有required="required"属性,HTML5原生验证可能对隐藏元素生效,导致验证不通过阻止提交。可以暂时移除该required属性测试,或用JS自定义该元素的验证逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:51:46