私は、ユーザーが 2 つの手順を入力する必要があるフォームで作業しています。最初の手順では、名前と電子メールを入力する必要があり、2 番目の手順では、選択したパスワードを入力する必要があるため、同じフォームで検証を 2 回実行する必要があります。最初のステップでは成功しましたが、2 番目のステップでは単純に無視され、フォームが送信されています。
これはjsコードです:
jQuery(document).ready(function() {
jQuery('#form_wk_new_user').submit(function() {
if(jQuery('#form_wk_step_1').css('visibility') == 'visible') {
jQuery('#form_wk_new_user').validate(
{
rules: {
new_user_name: {
required: true
},
new_user_email: {
required: true,
email: true
}
},
messages: {
new_user_name: {
required: 'requerido'
},
new_user_email: {
required: 'requerido',
email: 'correo no válido'
}
}
}
);
if(jQuery('#form_wk_new_user').valid()) {
jQuery('#form_wk_step_2').css('visibility','visible');
}
}
if(jQuery('#form_wk_step_2').css('visibility') == 'visible') {
jQuery('#form_wk_step_1').css('visibility','hidden');
jQuery('#form_wk_continue_btn').attr('value','Registrar');
jQuery('#form_wk_new_user').validate(
{
rules: {
new_user_pass: {
required: true
},
new_user_confirm_pass: {
required: true,
equalTo: '#new_user_pass'
}
},
messages: {
new_user_pass: {
required: 'requerido'
},
new_user_confirm_pass: {
required: 'requerido',
equalTo: 'contraseñas no coinciden'
}
}
}
);
if(jQuery('#form_wk_new_user').valid()) {
form.submit();
}
}
return false;
});
});
そして、これは私のフォームです:
<form id="form_wk_new_user" method="post" action="">
<div id="form_wk_step_1">
<label>Nombre</label>
<input type="text" id="new_user_name" name="new_user_name">
<label>e-mail</label>
<input type="text" id="new_user_email" name="new_user_email">
</div>
<div id="form_wk_step_2" style="visibility: hidden;">
<label>Contraseña</label>
<input type="password" id="new_user_pass" name="new_user_pass">
<label>Confirma contraseña</label>
<input type="password" id="new_user_confirm_pass" name="new_user_confirm_pass">
</div>
<div id="form_wk_continue"><input id="form_wk_continue_btn" type="submit" value="Continuar"></div>
</form>