Jquery .Submit()无效

Jquery .Submit()无效,jquery,asp.net-mvc-3,form-submit,Jquery,Asp.net Mvc 3,Form Submit,我有一个像下面这样的骨架 @using (Html.BeginForm("Preapprove", "Preapproval", FormMethod.Post, new { name = "form1", id = "form1", enctype = "multipart/form-data", @class = "form-horizontal" })) { ...... <input name="submit" type="button" value="Submit" id="

我有一个像下面这样的骨架

@using (Html.BeginForm("Preapprove", "Preapproval", FormMethod.Post, new { name = "form1", id = "form1", enctype = "multipart/form-data", @class = "form-horizontal" }))
{
  ......
<input name="submit" type="button" value="Submit" id="Sub" class="btn btn-success" style="margin-left:950px" />                     


 }
当所有验证都通过时,错误_标志将为0,并且它进入if条件并向我发出“提交”警报,但表单未提交


代码中缺少什么?

您需要将输入按钮的名称从“提交”更改为其他名称。有一个名为“submit”的元素会导致表单的submit方法不再工作,这意味着表单不能通过JavaScript提交(至少不容易)

这是因为名为“submit”的输入元素可以通过其名称引用,如:
form1.submit
。也就是说,输入元素作为表单对象的属性添加,属性名称是输入元素的名称。这基本上隐藏了表单原型上的
submit
函数


我在上面说“不容易”,因为以下内容仍然有效(至少在Firefox中是如此):


或者,您可以捕获表单的本机提交事件,然后将JavaScript代码集中在表单的提交方法上,而不是按钮的单击事件

该按钮需要具有一种类型的
submit
(单击具有
type=submit
的按钮自然会触发事件)


控制台说什么?它发出“提交”警报并停留在页面上。没有其他msgsTry
警报(“提交:+$(“#格式1”).length)并验证它是否显示“提交:1”。然后尝试
alert(“提交:+$(“#form1”)[0]。标记名)并验证它是否显示“提交:表单”。亲爱的约翰..我相应地更改了警报。第一个给我“提交:1”,第二个给结果“提交:形式”,所有看起来不错。尝试更改
$(“#form1”)。提交()
$(“#表格1”)[0]。提交()。这将直接调用表单元素的
submit()
方法,而不调用绑定到表单的任何提交事件处理程序。您不必这样做,但可能有一个提交处理程序阻止表单提交。我花了半个小时试图找出我的表单出了什么问题。这就解决了问题。谢谢
$(document).ready(function () {
            $('#Sub').click(function (e) {
              var error_flag = 0;

                if (d_row_count == 1) {
                    error_flag = 1;
                }
                else if (d_row_count > 1) {
                    if (code == null || code.trim() == '') {
                        error_flag = 1;

                    }
                    else if (s_row_count == 1) {
                        error_flag = 1;
                    }
                }
                if (error_flag != 1) {
                    alert("submitting");
                    $("#form1").submit();
                 }
            });
HTMLFormElement.prototype.submit.call($("#form1")[0]);
<input name="submit" type="submit" value="Submit" id="Sub" class="btn btn-success" style="margin-left:950px" />
$(document).ready(function () {
    $("#form1").submit(function (e) {

        if (d_row_count == 1) {
            return;
        }
        else if (d_row_count > 1) {
            if (code == null || code.trim() == '') {
                return;

            }
            else if (s_row_count == 1) {
                return;
            }
        }

        // Thre were no errors!
        alert("submitting");

        // If you want to override the form submit method completely, use...
        // e.preventDefault();

    });
});