Sac*_*chu 5 jquery form-submit asp.net-mvc-3
我有一个像下面的骨架
@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" />
}
Run Code Online (Sandbox Code Playgroud)
并在jquery我提交此表单上的点击甚至按钮ID Sub
$(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();
}
});
Run Code Online (Sandbox Code Playgroud)
当所有验证通过时,error_flag将为0并且它进入if条件并给我警告"正在提交"但表单未提交.
代码中缺少什么?
Joh*_*n S 18
您需要将输入按钮的名称从"提交"更改为其他内容.拥有一个名为"submit"的元素会导致表单的提交方法不再有效,这意味着无法通过JavaScript提交表单(至少不容易).
原因是因为名为"submit"的输入元素可以通过其名称引用,如下所示:form1.submit.也就是说,input元素被添加为表单对象的属性,属性名称是input元素的名称.这基本上隐藏了submit表单原型上的功能.
我上面说"不容易",因为以下内容仍然有效(至少在Firefox中):
HTMLFormElement.prototype.submit.call($("#form1")[0]);
Run Code Online (Sandbox Code Playgroud)