当我将Id和enctype一起传递用于图像上传时,JQuery代码中的表单提交不会触发
当我在代码中使用Id和enctype时,我的JavaScript不会命中 有人能告诉我怎么做吗当我将Id和enctype一起传递用于图像上传时,JQuery代码中的表单提交不会触发,jquery,asp.net-mvc,Jquery,Asp.net Mvc,当我在代码中使用Id和enctype时,我的JavaScript不会命中 有人能告诉我怎么做吗 @using(Html.BeginForm("_Edit", "Home", new {@Id = "Editform" }, FormMethod.Post, new {enctype = "multipart/form-data" })) JQuery代码 $(document).ready(function () { var url = '@Url.Action("_Edit
@using(Html.BeginForm("_Edit", "Home", new {@Id = "Editform" }, FormMethod.Post, new {enctype = "multipart/form-data" }))
JQuery代码
$(document).ready(function () {
var url = '@Url.Action("_Edit", "Home")';
$('#Editform').submit(function () {
if (!$(this).valid()) {
return;
}
$.post(url, $(this).serialize(), function (response) {
if (response.success) {
$('#Editform').get(0).reset();
}
else {
var message = response.message;
alert(message);
}
});
return false;
})
});
脚本未执行的原因是您的
没有id=“Editform”
属性。您使用的重载是将Editform
添加为路由值,而不是html属性。如果您检查正在生成的html,您将看到您需要使用$.ajax()和FormData
(使用正确的ajax选项)如果您想要使用ajax上载文件-请参阅示例,并且您的表单没有id=“EditForm”
-您的BeginForm
重载正在添加路由值,不是属性的id
form@StephenMuecke,谢谢您的评论。我不知道如何创建FormData
。请根据我的场景发布示例答案。请参阅我提供的链接you@StephenMuecke,我不理解var formdata=new formdata($('form').get(0))代码>代码以及它与我的问题的关系,还提到了标签内的控件
谢谢Stephen的大力帮助。你节省了我的时间。
@using(Html.BeginForm("_Edit", "Home", FormMethod.Post, new { id = "Editform", enctype = "multipart/form-data" }))