現在、ajax送信と検証を同時に実現しています。次のようなカスタム関数を使用しています:
$('.edit_form').submit(function (e) {
e.preventDefault();
var form = $(this);
var formData = $(this).serialize();
if (form.find('.has-error').length) {
return false;
}
$.ajax({
url: form.attr("action"),
type: form.attr("method"),
data: formData,
success: function (data) {
...
},
error: function () {
alert("Something went wrong");
}
});
});
そして、これがphp側です。検証のために、私の設定は次のようになります。
$form = ActiveForm::begin([
'id' => "some_form",
'action' => ['user/edit'],
'options' => ['class' => 'edit_form'],
'enableAjaxValidation' => false,
'enableClientValidation' => true,
]); ?>
私が必要とするものを達成するための最良の方法ではないと確信しています。特に、検証エラーが発生した場合に送信を防止するために使用するこの部分:
if (form.find('.has-error').length) {
return false;
}
助言がありますか?Yii 2 の組み込み設定を使用して適切に ajax 送信と検証を行うにはどうすればよいですか?