问题:我在一个页面中有三个表单,它们都有相同的错误:我需要两次单击“提交”按钮才能提交表单。
我发现这是一个常见的错误,通常是通过命名按钮"提交"来触发,但事实并非如此。
这是我的代码:
(第一种形式:更改密码)
<div id="change-password-form">
<?php $changePasswordForm = ActiveForm::begin([
'id' => 'change-password-form',
"options" => ["class" => "animated-label"],
"fieldConfig" => ["template" => "{input}\n{label}\n{hint}\n{error}"],
]); ?>
<div class="row">
<div class="col-md-6">
<?= $changePasswordForm->field($changePassword, 'newPassword')->passwordInput() ?>
</div>
<div class="col-md-6">
<?= $changePasswordForm->field($changePassword, 'repeatNewPassword')->passwordInput() ?>
</div>
</div>
<div class="row">
<div class="col-md-6">
<?= $changePasswordForm->field($changePassword, 'oldPassword')->passwordInput() ?>
</div>
<div class="col-md-6">
<?= Html::submitButton(
'Change Password',
[
'class' => 'btn btn-primary',
"style" => "width: 100%",
'name' => 'submit-change-password',
'id' => 'submit-change-password',
]
) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
(第二种形式:更改电子邮件)
<div id="change-email-form">
<?php $changeEmailForm = ActiveForm::begin([
'id' => 'change-email-form',
"options" => ["class" => "animated-label"],
"fieldConfig" => ["template" => "{input}\n{label}\n{hint}\n{error}"],
]); ?>
<div class="row">
<div class="col-md-6">
<?= $changeEmailForm->field($changeEmail, 'password')->passwordInput() ?>
</div>
<div class="col-md-6">
<?= $changeEmailForm->field($changeEmail, 'email')->textInput() ?>
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-6">
<?= Html::submitButton(
'Change Email',
[
'class' => 'btn btn-primary',
"style" => "width: 100%",
'name' => 'submit-change-email',
'id' => 'submit-change-email',
]
) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
(第三种形式:更改用户名)
<div id="change-username-form">
<?php $changeUsernameForm = ActiveForm::begin([
'id' => 'change-username-form',
"options" => ["class" => "animated-label"],
"fieldConfig" => ["template" => "{input}\n{label}\n{hint}\n{error}"],
]); ?>
<div class="row">
<div class="col-md-6">
<?= $changeUsernameForm->field($changeUsername, 'password')->passwordInput() ?>
</div>
<div class="col-md-6">
<?= $changeUsernameForm->field($changeUsername, 'username')->textInput() ?>
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-6">
<?= Html::submitButton(
'Change Username',
[
'class' => 'btn btn-primary',
"style" => "width: 100%",
'name' => 'submit-change-username',
'id' => 'submit-change-username',
]
) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
如您所见,提交按钮具有唯一ID和名称,它们可以正确解析为所需的HTML代码。
E.g。提交按钮&#34;更改密码&#34;看起来像这样:
<button type="submit" id="submit-change-password" class="btn btn-primary" name="submit-change-password" style="width: 100%">Change Password</button>
此案例是否有任何解决方案或解决方法?我只找到了重命名提交按钮的解决方案。