我想进行ajax调用,然后等待ajax呼叫的响应(停止表单提交到那时),然后根据我得到的ajax响应发布表单。这个问题基于ajax调用,然后提交表格。因此,在放下脚本之下后,一切都很好,但是我将失去客户端验证。我可以打一个ajax呼叫并仍然尊重客户端验证吗?
@section scripts {
<script>
var canSubmit = false;
$('form').submit(function (e) {
if (!canSubmit) {
e.preventDefault();
var data = $('form').serialize();
var url = $(this).data('url');
$.ajax({
url: url,
type: 'POST',
data: data,
success: function (response) {
if (response.hasPreviousRequest) {
if (confirm("You've already applied for this job. Apply again?")) {
canSubmit = true;
$('form').submit();
}
}
else {
canSubmit = true;
$('form').submit();
}
},
error: function () {
alert("error");
}
});
}
});
</script>
}
P.S:请注意,i AS 删除AJAX调用客户端验证验证开始正常工作。有人可以向我解释一下这种行为吗?
您需要在表单元素上调用.valid()
方法(如果不是,请取消AJAX调用)
$('form').submit(function (e) {
if (!$(this).valid()) {
return // exit
}
if (!canSubmit) {
....