如何防止双击提交
How to prevent submit by double click
我在 yii2 中使用 ActiveForm
创建了 注册表单 ,通过 双击 ,表单提交,它会自动提交。我该如何防止它,我想通过单击提交按钮来提交表单。
为什么会发生这种情况,解决方案是什么?
这是我的表单代码:
$form = ActiveForm::begin([
'enableAjaxValidation' => true,
]);
?>
<?=$form->field($model, 'nickname', ['addon' => ['prepend' => ['content' => '<i class="glyphicon glyphicon-option-horizontal"></i>']]])->label(false)->textInput()?>
<?=$form->field($model, 'phone_number', ['addon' => ['prepend' => ['content' => '<i class="glyphicon glyphicon-option-horizontal"></i>']]])->label(false)->textInput()?>
<?=$form->field($model, 'email', ['addon' => ['prepend' => ['content' => '@']]])->label(false)->textInput()?>
<?=$form->field($model, 'password', [
'addon' => ['prepend' => ['content' => '<i class="fa fa-key"></i>']]])->passwordInput(['autocomplete' => 'off'])->label(false)->passwordInput();
?>
<div class="form-group">
<?=Html::submitButton(Yii::t('app', 'Signup'), ['value' => 'signupp', 'class' => 'btn btn-primary', 'name' => 'signupButton', 'style' => 'width:100%;'])?>
</div>
<?php ActiveForm::end();?>
您可以使用ActiveForm
的js事件beforeSubmit
在提交表单时禁用按钮,您可以使用CSSpointerEvents:'none'
禁用单击按钮。
将 id="my-form"
分配给您的表单,将 id="my-submit"
分配给您的提交按钮,并在您的视图顶部使用以下脚本,您的按钮将在提交时被禁用。
$js =<<< JS
$("#my-form").on("beforeSubmit",function(e){
e.preventDefault();
$("#my-submit").css({pointerEvents:'none'});
return true;
});
JS;
$this->registerJs($js, \yii\web\View::POS_READY);
我在 yii2 中使用 ActiveForm
创建了 注册表单 ,通过 双击 ,表单提交,它会自动提交。我该如何防止它,我想通过单击提交按钮来提交表单。
为什么会发生这种情况,解决方案是什么?
这是我的表单代码:
$form = ActiveForm::begin([
'enableAjaxValidation' => true,
]);
?>
<?=$form->field($model, 'nickname', ['addon' => ['prepend' => ['content' => '<i class="glyphicon glyphicon-option-horizontal"></i>']]])->label(false)->textInput()?>
<?=$form->field($model, 'phone_number', ['addon' => ['prepend' => ['content' => '<i class="glyphicon glyphicon-option-horizontal"></i>']]])->label(false)->textInput()?>
<?=$form->field($model, 'email', ['addon' => ['prepend' => ['content' => '@']]])->label(false)->textInput()?>
<?=$form->field($model, 'password', [
'addon' => ['prepend' => ['content' => '<i class="fa fa-key"></i>']]])->passwordInput(['autocomplete' => 'off'])->label(false)->passwordInput();
?>
<div class="form-group">
<?=Html::submitButton(Yii::t('app', 'Signup'), ['value' => 'signupp', 'class' => 'btn btn-primary', 'name' => 'signupButton', 'style' => 'width:100%;'])?>
</div>
<?php ActiveForm::end();?>
您可以使用ActiveForm
的js事件beforeSubmit
在提交表单时禁用按钮,您可以使用CSSpointerEvents:'none'
禁用单击按钮。
将 id="my-form"
分配给您的表单,将 id="my-submit"
分配给您的提交按钮,并在您的视图顶部使用以下脚本,您的按钮将在提交时被禁用。
$js =<<< JS
$("#my-form").on("beforeSubmit",function(e){
e.preventDefault();
$("#my-submit").css({pointerEvents:'none'});
return true;
});
JS;
$this->registerJs($js, \yii\web\View::POS_READY);