jqueryの検証プラグインと特にリモートメソッドに関する質問があります。jQueryの検証:リモートメソッド
私はcheckEmail.php
というスクリプトを使用して、データベースとの電子メールアドレスを確認しています。私はrequired:true
とemail:true
も使用します。私はスピナーを追加して、サーバーからの応答を取得し、完了したら非表示にしたいと考えています。
同時に、サーバーからの結果がtrue
の場合は、電子メールフィールドの横に緑色の目盛りのアイコンが表示されます。私は次のコードを使用
:
$('#form').validate({
rules: {
email: {
required: true,
email: true,
remote: {
url: 'js/ajax/checkEmail.php',
type: 'POST',
data: {
email: function() {
return $('#email').val();
}
},
beforeSend: function() {
//CODE TO SHOW THE SPINNER
},
success:function(output){
//CODE TO HIDE THE SPINNER
if(output == 'true')
{
//SHOW GREEN TICK
}
else
{
//SHOWS THE CUSTOM ERROR FROM SERVER
}
}
}
}
},
messages: {
email: {
required: 'Please enter your email',
email: 'Please enter a valid email address'
}
}
});
は、以下のメールアドレス[email protected]
がデータベースにあると言います。リモートメソッドは、true
を返します。同時に、required
とemail
の両方の方法が満たされます。緑色のダニが表示されます。
問題:
私が必要と、電子メールのいずれかの方法をdissatisfyた場合は、エラーメッセージが自動的に表示されますが、緑色のチェックマークが残ります。 .validate()
の後に.valid()
を使用して、フォームが有効でないことを確認して緑色のダニを取り除こうとしました。動いていない。
if($('#form').valid())
{
//REMOVE GREEN TICK : --> NOT WORKING
}
フォームが有効でない場合は、DOMを操作するために何かできますか?言い換えれば、私はどのようにこの仕事をすることができますか?
事前のおかげで、
クリストス
成功関数のelse部分では、ticを非表示にしますか? – Rasclatt
私はこれがうまくいくと思います。なぜなら、elseメソッドは、必要なメソッドとemailメソッドが満たされている場合に起動されるリモートメソッドにあるからです。 – christostsang