2011-06-27 8 views
2

これは非常に単純な質問のように思えるが、私は、コードを見つめの時間は、私は解決策どのように私はjQueryの検証プラグインでエラーラベルをアニメーション化することができます

を見つけるのに苦労してきたと思います、私はjQuery Validation plug-in &を使用している私はエラーラベルの表示をアニメートしたいそれは可能ですか?もしそうなら、どのように?

私は周りを見て持っていたが、解決策は私をほのめかしているように見えます!

ありがとうございます!!!

+0

アニメイト:

は、だから、標準jquery.validateロジックをオーバーライドする必要がありますか? – nmc

+0

ちょうど不透明度を変更し、スライドまたは1つのイージングオプションを利用することができます。 – Sheixt

答えて

1

例:

$("#yourform").validate({ 
rules: { 

Your rules 

}, 
messages:{ 

Your messages 

}, 
errorPlacement: function(error, element){ 
if (element.is(":radio") || element.is(":checkbox")){ 
error.insertAfter(element.parent()).animate({opacity: 0.25, left: '+=50'}); 
} else { 
error.insertAfter(element).animate({opacity: 0.25, left: '+=50'}); 
} 
    } 

}); 
+0

AR、あなたの星!コードを実装し、完全に動作します。ちょうど私が後にしているスタイルを取得するために少し微調整。本当に私は答えを見つけることができなかった驚いた! ありがとうございました – Sheixt

+0

もっと一般的に受け入れられる方法はありますか?このメソッドは、フィールドが検証されるたびに関数が1回だけ実行されるため、いくつかの欠点があります。 – whiteatom

4

前の答えは完全には正しくありません。

errorPlacement機能は、各エラーのために一度だけ呼ばれます。あなたはオンとオフ、このエラーを切り替える場合 - jquery.validateだけhideshowhighlightunhighlightを呼び出します。あなたは、あなたが「ハイライトを消し」と「slideUp」を使用することはできません非表示メッセージのためのアニメーションをしたい場合は、第二

highlight: function (element, errorClass, validClass) { 
    $(element).parent().find('.help-block') //your error placement 
     .slideDown(300); //animation 
} 

は、まずオプションを強調するためにアニメーションを追加します。

は、だから、2件の追加を必要としますjquery.validateはアニメーションが完了する前に直接 'hide'を呼び出すためです。どのように/どのように

jQuery.validator.prototype.hideErrors = function() { 
    this.addWrapper(this.toHide).slideUp(300); 
} 
関連する問題