クライアント側の検証にjQueryValidateプラグインを使用していて、AJAXを介して送信するフォームがあります。フォームを送信した後、フォームをリセットしてください。私は.resetForm()
フィールドをリセットする方法を使用しましたが、これは機能しますが、問題は、検証プラグインがフォーカスされたときにフィールドをすぐに検証しようとし、新しい送信に入力を入力する機会を与える前にエラーを出すことです。
フローの例:
- 最初に検証をトリガーします
- 検証を修正し、AJAX経由でフォームを送信します
- .resetForm()を呼び出すと、フィールドが正常にクリアされます
- もう一度フォームに記入してみてください
- フィールドに焦点を当てます(私の場合は電子メール検証があります)
- 入力を入力する機会を与える前に、それは検証され、それが正しくないと言います。
通常、プラグインは、入力が正しくないことを通知する前に、入力を入力できるようにします。フォーカス検証を一度にオフにせずに、フォームを本当にリセットして、フォーカスで検証が再度行われないようにする方法はありますか?
ありがとう、そしてここにクリーンアップ/簡略化されたコードサンプルがあります!
// Validation
$('#registerForm').validate({
submitHandler: function(form) {
$(form).ajaxSubmit({
success: function(response) {
if( response == 'success' ) {
resetMyForm();
}
else {
alert('unsuccessful');
}
}
})
}
});
})
function resetMyForm() {
$('#registerForm').resetForm();
v.prepareForm(); // Tried adding this, no help
v.hideErrors(); // Tried adding this, no help
}