私の問題は、Jquery を使用したフォームの検証にあります。validate
私の検証は関数のみでうまく機能していましたが、その後submit
オプションを追加しましたが、検証は行われません。フォームを検証してから、送信を実行したいと思います。
$(document).ready(function () {
$('#ReqCreateForm').validate({
invalidHandler: function (e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1
? 'Missing 1 field'
: 'Missing fields';
$("div.error span").html(message);
$("div.error").show();
} else {
$("div.error").hide();
}
},
onkeyup: false,
highlight: function (element) {
$(element).addClass('error');
}, unhighlight: function (element) {
$(element).removeClass('error');
}
});
$('#ReqCreateForm').submit(function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
alert("All Great!");
},
error: function (jqXhr, textStatus, errorThrown) {
alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')");
}
});
return false;
});
});
ありがとうございます。
解決:
解決策は非常に簡単でした。次のコードを送信オプションの前に追加しました$.ajax
。
if (!$(this).valid()) {
return false;
}