在代码中提交 mvc 表单时,jQuery on('submit'...) 方法不起作用

Posted

技术标签:

【中文标题】在代码中提交 mvc 表单时,jQuery on(\'submit\'...) 方法不起作用【英文标题】:jQuery on('submit'...) method doesn't work when mvc form is submitted in code在代码中提交 mvc 表单时,jQuery on('submit'...) 方法不起作用 【发布时间】:2020-02-24 08:55:26 【问题描述】:

我在点击以下 jquery .on() 方法时遇到了问题。我的代码根本无法访问它:

$('#claimOrderForm').on('submit', function (e) 
    e.preventDefault();
);

我有一个 mvc 表单,我正在提交表单并通过 javascript 将其保存到控制器。它保存得很好,但是另外,我想调用 on(submit) 事件来防止 jquery 刷新,但我一直无法这样做。

我的代码如下:

查看 - 表单开始

@using (Ajax.BeginForm("ClaimOrder", "ClaimOrders", null, ajaxOptions, new  @id = "claimOrderForm", enctype = "multipart/form-data" ))

查看 - 提交按钮

此提交按钮已隐藏。我在javascript中处理点击事件。我这样做是因为我想通过 jQuery 对话框按钮处理所有保存

<input id="claimOrderSubmit" type="submit" style="display:none;"/> 

Javascript - 对话框

claimOrder.dialogElem = claimOrder.findDialogContainer().dialog(
        autoOpen: false,
        height: 500,
        width: 800,
        modal: true,
        buttons: [
            
                id: "claimOrderSaveButton",
                text: "Save",
                click: function ()  claimOrder.SaveClaimOrder(); 
            ,
            
                id: "claimOrderCloseButton",
                text: "Close",
                click: function ()  claimOrder.closeClick(); 
            
            ],
            close: function ()  clinicalReview.closeEvent(); 
    );

Javascript - 保存

claimOrder.prototype.SaveClaimOrder = function () 
try 
    var methodName = "claimOrder.SaveClaimOrder ";
    var form = $("#claimOrderForm");
    var url = site.baseUrl + "ClaimOrders/ClaimOrder";
    form.prop("action", url);
    $("#claimOrderSubmit").click();
 catch (ex) 
    alert("error in " + methodName + ". ex:" + ex);

 ;

就像我说的那样,我的 javascript 很好地传递给了我的 mvc ActionResult 并且一切都成功保存了,但是我无法在我的 javascript 中点击那个 on(submit) 事件。知道我该怎么做吗?

谢谢

【问题讨论】:

【参考方案1】:

试试下面一个

$('#claimOrderForm').addEventListener('click',function(e)
//your function code
);

【讨论】:

【参考方案2】:

您可以触发该按钮的点击事件...

$("#claimOrderSubmit").trigger('click')..

我觉得这样就可以了……

【讨论】:

以上是关于在代码中提交 mvc 表单时,jQuery on('submit'...) 方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Jquery AJAX 调用 MVC Action 然后在 MVC 中提交表单?

当jQuery加载表单时,jQuery提交表单未激活

当表单在 ASP.NET MVC 5 应用程序中有效时触发 jQuery 函数

使用 jquery 验证验证 2 个表单

使用 .on 和 .validate 的 jQuery 必须提交两次表单才能验证

检查是否在MVC C#和jQuery [duplicate]中提交表单之前选中了复选框