2011-06-21 3 views
7

jQueryを初めて使用しています。jQueryの検証が完了したことを検出して、そのイベントに基づいて何かを呼び出すにはどうしたらいいですか?

jQuery検証プラグインを使用しています。&同時にcufonが私に本当に苦労しています。

基本的には、jQueryの検証が何をして、それの直後にCufon.refresh()を呼び出したら、イベントを検出する必要があります。

$('#commentForm').validate({ 
    rules: { 
     password: { 
      required: true, 
      minlength: 8, 
      maxlength: 8, 
      number: true 
     }, 
    } 
}); 

フォームが有効でない場合、私たちは<label class="error"> SOME TEXT </label>を期待しています。

これを作成したら、jQuery検証によって作成されたラベルにCufon.refresh()を追加します。 jQuery検証が完了したことを検出して、そのイベントに基づいて何かを呼び出すにはどうすればよいですか?

ご迷惑をおかけして申し訳ありません。 よろしく、 ピョートル

答えて

9

@Arielのおかげ - 「成功」の存在する場合にも「ない-成功」が存在しなければならないので...

は、コードの作業:のために再び

$('#commentForm').validate({ 
    rules: { 
     password: { 
      required: true, 
      minlength: 8, 
      maxlength: 8, 
      number: true 
     } 
    }, 
    showErrors: function(errorMap, errorList) { 
     this.defaultShowErrors(); 
     Cufon.refresh(); 
     //alert('not valid!') 
    }, 
    success: function() { 
     //alert('valid!') 
    } 
}); 

感謝をアイディア!

+0

フォント全体をリフレッシュしたくない場合は、 'Cufon.replace( 'label.error'、{fontFamily:" myAwesomeFont "})'を実行した方がより速く走っていることがわかりました。表示される内容が分かっている場合は、ページ全体を更新しないようセレクタをターゲットにすることができます。 –

2
submitHandler: { function(){ bla bla }} 

は、これは検証の完了時にコードを実行できるようになります。デフォルトのハンドラーを置き換えるため、送信フォームスニペットを配置する必要があります。

EDIT:

// specifying a submitHandler prevents the default submit 
    submitHandler: function() { 
     alert("submitted!"); 
    }, 
    // set this class to error-labels to indicate valid fields 
    success: function(label) { 
     // set as text for IE 
     label.html(" ").addClass("checked"); 
    } 

あなたがやりたいのいずれかを使用することができます。 submitHandlerを使用すると、サブミットおよび実行コードを停止することができます(サブミットする前にコードを実行することができます)。またはサブミット後にコードを実行することができます。パスワードオブジェクトの近くにブレースの後に余分なコンマを持って

$('#commentForm').validate({ 
    rules: { 
     password: { 
      required: true, 
      minlength: 8, 
      maxlength: 8, 
      number: true 
     }, 
    } 
    success: function() { .... } 
}); 

注:

+0

間違っ検証プラグインが:)そこにトンがあると彼はどちら言わなかったようです。私は 'rules'オプションを持っているものと仮定しました。 – Ariel

+1

_デフォルトのハンドラを置き換えるので、送信フォームスニペットを配置する必要があります。 – Iladarsda

+0

@Ariel - ここでは 'http:// bassistance.de/jquery-plugins/jquery-plugin-validation /'を使用しているplgです – Iladarsda

3

successオプションを使用します。 IEでエラーが発生します。

+0

私は無効なイベントを探しています!しかし、アイデアをありがとう! – Iladarsda

+0

@Arielのおかげで、「成功」した場合は「成功しない」こともあります。 作業コード: '$( '#commentForm')。{ パスワード:{ 必要:真、 MINLENGTH:8、 MAXLENGTH:8、 番号:真 }}、 showErrors:関数(errorMap、errorList){ this.defaultShowErrors(({ ルールを検証します); Cufon.refresh(); // 警告( '有効ではありません!') }、 成功:関数(){// 警告( '有効!') } }); ' アイデアをもう一度ありがとう! – Iladarsda

0

errorPlacementオプションの中に入れます。

errorPlacement: function(error, element) { 
    error.appendTo(element.parent()); 
    yourCodeHere(); 
} 
1
<script src="js/validate/jquery-1.11.1.min.js"></script> 
<script src="js/validate/jquery.validate.min.js"></script> 
<script src="js/validate/additional-methods.min.js"></script> 

<script> 
    jQuery.validator.setDefaults({ 
     success: "valid" 
    }); 

    var form = $("#myform"); 
    form.validate({ 
     rules: { 
      name: {required: true, minlength: 2}, 
      lastname: {required: true, minlength: 2} 
     } 

    }); 

    $("#button").click(function() { 
     if(form.valid() == true) { // here you check if validation returned true or false 
      $("body").addClass("loading"); 
     } 
    }) 

</script> 
+0

コードにコンテキストを追加する必要があります。これがなぜ彼/彼女の問題を解決するかOPに伝えてください。 – mdewitt

関連する問題