jquery検証を使用して検証されたMVCアプリケーションにAjaxフォームがあります。当初、日付フィールドは米国の代わりに英国のフォーマット(私は英国のように設計されていた)のため、検証を行っていなかったので、それを止めるコードをいくつか追加しました。jquery検証をMVC Ajaxフォームに正しく組み込むにはどうすればよいですか?
jqueryの検証は、私が追加されたコードは、しかし、それは成功または失敗機能ですトリガされませんAjaxフォームを意味form.submitをハイジャック
$(function() {
$.validator.addMethod("date", function(value, element) {
var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/;
return value.match(dateReg);
}, "Invalid date");
$('#form').validate({
submitHandler: function(form) {
form.submit();
}
});
});
日付。
Ajaxのフォームのコード
@using (Ajax.BeginForm("Create", "Fixtures", new AjaxOptions
{
OnSuccess = "Success",
OnFailure = "Failure"
}, new { @class = "standard-form", @Id = "form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
...Form fields etc...
}
スクリプト
function Success() {
console.log("Success")
}
function Failure() {
console.log("Failure")
}
これは全体の方法は、私にはきれいな感じdoens'tないので、私の質問は、私が検証しない方法ですフォームは正しく(jqueryのバリデーションや代替を使用して)私のajaxフォームの成功と失敗の機能を保持しますか?
'DataAnnotations'を使用してモデルまたはビューモデルを検証し、それをjQueryの妥協しない検証と組み合わせる方法はありますか? – Esen
あなたの正規表現は日付を検証していません。 'dd/MM/yyyy'フォーマットを許可したいのであれば、[jquery globalize](https://github.com/jquery/globalize)を使用するか、またはjquery datepickerを使用している場合は、メソッド(jQuery-ui datepickerの場合は[この回答](http://stackoverflow.com/questions/27285458/jquery-ui-datepicker-and-mvc-view-model-type-datetime/27286969#27286969を参照してください)。 –
また、[この回答](http://stackoverflow.com/questions/30594128/error-in-date-validation-mvc/30609111#30609111)のスクリプトを使用することもできます –