Php 如何防止双击提交

Php 如何防止双击提交,php,jquery,yii2,yii2-advanced-app,Php,Jquery,Yii2,Yii2 Advanced App,我在yii2中使用ActiveForm创建了注册表单,双击表单提交,表单自动提交。我如何防止它,我想表单提交只需点击提交按钮 为什么会发生这种情况,解决方案是什么 这是我的表格代码: $form = ActiveForm::begin([ 'enableAjaxValidation' => true, ]); ?> <?=$form->field($model, 'nickname', ['addon' => ['prepend' => ['conte

我在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();?>
$form=ActiveForm::begin([
“enableAjaxValidation”=>true,
]);
?>

您可以在提交前使用
ActiveForm
的js事件
before submit
来禁用表单提交时的按钮,您可以使用CSS
pointerEvents:'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);

$js=Onclick您可以用js禁用按钮。@JonStirling如果禁用buton会发生什么?@JonStirling我希望按按钮提交表单。是的,所以在提交时(即单击提交按钮)立即禁用它,这样他们就不能再次单击它。禁用它会使表单无法单击。那么,在禁用按钮或正常提交的同时,您是否尝试通过ajax提交表单?