2011-10-28 24 views
0

私がやっていることは本当に簡単です。私はちょうど基本的なフォームが欲しいですが、それが有効である場合でも、それがそこにぶら下がり、フィールドのような行為は有効ではなくても有効です。jQueryフォームの検証で検証を続行できません

たとえば、電子メールアドレスを[email protected]と入力してチェックアウトすると、有効と設定されます。しかし、私が戻って存在する電子メールを入れて、偽を返すべきであれば、状態は変化しません。これはequalToメソッドにも当てはまります。

それは本当にfrusteratingます:ここで/

だJS [短縮名]:ajax.phpため

$('#register').validate({ 
    rules: { 
     scq: { 
      required: true 
     }, 
     email: { 
      required: true, 
      remote: { 
       url: 'ajax.php', 
       type: 'post', 
       async: false, 
       data: { 
        type: 'email', 
        email: function() { 
         return $('#email').val() 
        } 
       } 
      } 
     }, 
     email2: { 
      equalTo: '#email' 
     }, 
     pass: { 
      required: true 
     }, 
     pass2: { 
      equalTo: '#pass' 
     } 
    }, 
    success: function(label) { 
     label.html(' ').addClass('success'); 
    } 
}); 

PHP:

if($row['id']) $success = true; 
else $success = false; 

echo json_encode($success); 

答えて

1

を...私が行けば戻って存在する電子メールを入れ、返信する必要があります。 false(やり直します)、ステータスは変更されません。手動success:ハンドラ内.successと呼ばれるクラスを追加しているためだ

。問題は、後で検証が失敗した場合、またはそのクラスが削除されないことです。

プラグインを許可することができます。automatically apply/remove the appropriate class for success (これは、すでにエラークラスのためにこれを行います。)validClass:ハンドラを追加...

$('#register').validate({ 
    validClass: 'success', 
    rules: { // etc. etc. 

とは、あなたのsuccess:ハンドラから.addClass('success')を削除します。


私はあなたの$success変数がでたり、それは問題の一部かどう収まるところ全くわかりません。あなただけ.valid()が真か偽であるかどうかを確認しかし

to simply test if validation has passed or failed、...

if ($('#register').valid() == true) { alert('passed validation'); }; 

if ($('#register').valid() == false) { alert('failed validation'); }; 

私はこのことができます願っています。

+1

これはbtwで動作しました。私はあなたのコメントを見た前に実際にこれを理解しました。これで人々は将来それを見ることができます! –

関連する問題