Php Yii2:如何使用AJAX验证表单,然后再次使用AJAX提交数据
我无法在Yii2中找到以下方法:Php Yii2:如何使用AJAX验证表单,然后再次使用AJAX提交数据,php,ajax,validation,submit,yii2,Php,Ajax,Validation,Submit,Yii2,我无法在Yii2中找到以下方法: 首先通过AJAX验证我的表单,因为我有一个唯一的字段 然后,如果验证正确,则通过AJAX将表单数据提交给表单操作 以下是我到目前为止得到的信息: 我认为: <?php $form = ActiveForm::begin([ 'id' => 'subscribe-form', 'action' => ['site/subscribe'], 'validatio
<?php
$form = ActiveForm::begin([
'id' => 'subscribe-form',
'action' => ['site/subscribe'],
'validationUrl' => ['site/validate-subscribe'],
'validateOnSubmit' => true,
'enableAjaxValidation' => true,
]) ?>
<?= $form->field($model, 'name')->input('text', ['class' => 'w-input']) ?>
<?= $form->field($model, 'email')->input('text', ['class' => 'w-input']) ?>
<div class="form-group">
<?= Html::submitButton('SUSCRIBIRSE', ['class' => 'w-inline-block btn', 'name' => 'login-button']) ?>
</div>
<?php ActiveForm::end() ?>
在我的JS中:
$(document).ready(function () {
$('body').on('beforeSubmit', 'form#subscribe-form', function () {
var form = $(this);
// return false if form still have some validation errors
if (form.find('.has-error').length) {
return false;
}
// submit form
$.ajax({
url : form.attr('action'),
type : 'post',
data : form.serialize(),
success: function (response) {
// do something with response
},
error : function () {
}
});
return false;
});
});
问题是,当我在我的ActiveForm中将“enableAjaxValidation”设置为true时,yii.ActiveForm.js没有触发afterVAlidate或beforeSubmit事件。Try$('form#subscribe form')。on('beforeSubmit',function(){…})代码>
$(document).ready(function () {
$('body').on('beforeSubmit', 'form#subscribe-form', function () {
var form = $(this);
// return false if form still have some validation errors
if (form.find('.has-error').length) {
return false;
}
// submit form
$.ajax({
url : form.attr('action'),
type : 'post',
data : form.serialize(),
success: function (response) {
// do something with response
},
error : function () {
}
});
return false;
});
});