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']) ?>
答案 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,
]);