我正在开发一个应用程序,它使用 Jquery 来拦截我的表单提交,以代替 Ajax 提交。到目前为止,一切都很好!一切都很好.. 如果客户端没有启用 JS,应用程序将保持完美运行。
好吧,今天我创建了一个新表单,但是 JQuery 不拦截提交。确实,我改变了一点,但仍然如此。它应该工作。
我有一个简单的 PartialView 表单,一个跨度和两个按钮(NO(按钮)和 YES(提交))。我使用 RenderPartial("MyPartial") 到 DIV 和插件 FancyBox 将其显示为模式。根据单击哪个链接以显示模式,我更改表单的操作(报告垃圾邮件或删除项目)和具有特定消息的跨度。就像一条“花哨”的确认信息!!
再说一次,到目前为止一切都很好。我更改了表单操作并且它可以工作(使用警报(form.attr(action)),我使用正确的消息更改跨度并且它可以工作,但是当我单击按钮提交表单(是)时,它会直接进行我提出了一个正常的请求,而不是我想要的 Ajax 请求。
这是表格:
<form id="dialogForm" action="" method="post">
<div class="form_item_button">
<span id="dialogQuestion" style="color: Black;"></span>
<button id="btDialogNo" type="button" value="button" class="btn">No</button>
<button id="btDialogYes" type="submit" value="Submit" class="btn">Yes</button>
</div>
</form>
这是拦截表单提交的脚本:
$(document).ready(function() {
var theForm = $("#dialogForm");
// I CHECK IF THE ACTION WAS SET PROPERLY
// MY TESTS SHOW ME THAT THE ACTION IS OK!
alert(alert(theForm).attr("action"));
theForm.submit(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
data: theForm.serialize(),
url: theForm.attr("action"),
dataType: "json",
success: function(json) {
alert(json.Status);
},
error: function() {
alert('An error occurred while processing your request. Please try again.');
}
});
});
有什么想法吗?我花了整整一天的时间试图修复它!:(
谢谢