2012-05-23 3 views
11

フォームを検証するためにjQuery検証プラグインを使用しています。それは動作します(無効な入力の隣にエラーメッセージを置きますが、これは私のデザインをねじ込みます)。しかし、すべての入力フィールドにエラーコンテナを指定したいと思います。私はerrorLabelContainerを見つけましたが、これはすべてのエラーを1つのコンテナに入れます。jQueryフォームの検証:エラーのコンテナを定義します

2つの入力があります.1つはidがname、もう1つがfirstnameです。そして、私はids errorNameerrorFirstnameの2つのエラースパンを持っていると仮定しましょう。 nameの検証エラーをID errorNameのスパンに書き込むようにjQueryに指示するにはどうすればよいですか。

これが私の現在のjQueryのです:

$("#form").validate({ 
    errorLabelContainer: "#errors", 
     rules: { 
      name: { 
       required: true 
      }, 
      firstname: { 
       required: true 
      } 
     }, 
     messages: { 
      name: { 
       required: "Enter name" 
      }, 
      firstname: { 
       required: "Enter firstname" 
      } 
     } 
    }) 

答えて

11

私はerrorPlacementオプションがニーズに合ったと思う:作成したエラーラベルの

カスタマイズの配置。最初の引数:jQueryオブジェクトとして作成されたエラーラベル。第2引数:jQueryオブジェクトとしての無効な要素。

あなたは無効な要素に基づいて、エラーを配置したい要素を決定することができます

$("#form").validate({ 
    rules: { 
     name: { 
      required: true 
     }, 
     firstname: { 
      required: true 
     } 
    }, 
    messages: { 
     name: { 
      required: "Enter name" 
     }, 
     firstname: { 
      required: "Enter firstname" 
     } 
    }, 
    errorPlacement: function ($error, $element) { 
     var name = $element.attr("name"); 

     $("#error" + name).append($error); 
    } 
}); 

例:http://jsfiddle.net/R3aEQ/

+0

私が望んでいたまさにです、あなたはたくさん感謝:) – Ahatius

+0

ウィザードのさまざまな段階で異なるようにこれを行うことはできますか? errorPlacementをどのように動的に変更しますか? – Tofuwarrior

+0

'errorPlacement'は、ワークフローステップに属する関数を呼び出すことができます。あなたのワークフローがどのように構造化されているかによります –