必须单击Yii2表单提交按钮两次才能执行操作。怎么预防这个?

时间:2016-07-24 23:23:14

标签: yii2 yii2-advanced-app

yii2提交按钮需要在表单中单击两次

我有一个问题,我需要检查控制器中的多个提交按钮。它有效,但我需要点击提交按钮两次。  在控制器中:

switch(\Yii::$app->request->post('submit')) {
                case 'submit_1' :

                  //my code 
                   break;  

                case 'submit_2' :                   
                 //my code 

在视图中

<?= Html::submitButton('NEXT', ['name' => 'submit', 'value' => 'submit_2','class'=>'btn btn-primary pull-right']) ?>
<?= Html::submitButton('PREVIOUS', ['name' => 'submit', 'value' => 'submit_3','id'=>'next_summary', 'class' => 'btn btn-primary pull-right']) ?>

3 个答案:

答案 0 :(得分:4)

使用jquery保留字作为属性ID或属性名称存在问题。

搜索&#34;在命名表单元素(例如提交按钮等)时要小心。在 https://github.com/yiisoft/yii2/blob/master/docs/guide/input-forms.md

搜索&#34;附加说明&#34;在https://api.jquery.com/submit/

更改提交名称将解决您的点击两次问题:

<?= Html::submitButton('NEXT', ['name' => 'submit_next', 'value' => 'submit_2','class'=>'btn btn-primary pull-right']) ?>
<?= Html::submitButton('PREVIOUS', ['name' => 'submit_prev', 'value' => 'submit_3','id'=>'next_summary', 'class' => 'btn btn-primary pull-right']) ?>

答案 1 :(得分:0)

尝试将按钮名称更改为数组

 <?= Html::submitButton('NEXT', ['name' => 'submit[]', 'value' => 'submit_2','class'=>'btn btn-primary pull-right']) ?>
<?= Html::submitButton('PREVIOUS', ['name' => 'submit[]', 'value' => 'submit_3','id'=>'next_summary', 'class' => 'btn btn-primary pull-right']) ?>

并在您的控制器中:

$submittedType = \Yii::$app->request->post('submit');
switch($submittedType[0]) {
   //your code
}

答案 2 :(得分:0)

为避免双击禁用提交时验证:

$form = ActiveForm::begin([
    'validateOnSubmit' => false,
]);