2011-06-15 8 views
3

おはようjquery validate - グループとそのラベル

私はしばらくの間、jqueryのvalidate関数を使用しています。しかし、グループエラーラベルを持つことが可能かどうかは、グループ内のすべての要素(または3または4)が一度だけクリアされるかどうか疑問です。たとえば、グループに空のファーストネームとファーストネームがある場合、ファーストネームだけを入力するとエラーが消えます。私はonfocusout機能を無効にすることができますが、私はむしろそうしたくありません。ありがとうございました!

答えて

5

これは実際にjQueryの検証のバグのように見えます(hereのバグを報告する可能性があります)。それを回避するために、あなたは非常に特定のカスタムルールを定義できます。

$.validator.addMethod("name", function(value, element) { 
    return $("#firstname").val() !== '' && $("#lastname").val() !== ''; 
}, "Name is required"); 

をそして、まだgroups機能を使用:カスタムルールは、あなたのフィールドidの変更であればあるため、unmaintainableとハック感じ

$("form").validate({ 
    groups: { 
     name: "firstname lastname" 
    }, 
    firstname: "name", 
    lastname: "name", 
    errorPlacement: function(error, $element) { 
     var name = $element.attr("name"); 
     if (name === "firstname" || name === "lastname") { 
      error.insertAfter("#name"); 
     } else { 
      error.insertAfter($element); 
     } 
    } 
}); 

をあなたの検証は中断されます。しかし、それは問題を取り除く。

ここに例を示します。http://jsfiddle.net/Rqbws/

+0

hmです。しかし、私はグループ内の各フィールド(正規表現、カスタムなど)に適用されるいくつかのルールを持っているとき、これはどのように動作しますか? – Ortal

+0

@Ortal:そうです、それは強固な解決策ではありません。私はもっ​​と良いものを考え出すつもりです。 jQueryの検証が自動的にこれを処理しないことは残念です。 –

関連する問題