2012-05-10 15 views
5

クライアントのウィザードベースの注文システムであるページの新しいレイアウトを作成しています。彼らは材料のセットを注文するが、これらの材料は、たとえば、赤、青、および/または緑の任意の組み合わせで10個のウィジェットを注文できるように、注文プロセス中に一緒にグループ化することができる。フィールドの合計は、事前に計算された最大値を超えることはできません。ほとんどの資料は、グループごとに1つの単純な選択肢です。jQueryすべてのフィールドを評価しない検証

私は他のページでjQuery validateを使用しました。私はaddClassRulesメソッドを使用してページのすべての入力要素を検証しましたが、うまくいきました。私が取り組んでいる現在の例は、フォーム提出時に最初の検証失敗を捕捉するだけだからですが、提出後は通常は他のものを捕捉しますが、決して検証失敗の完全なリストはありません。 http://jsfiddle.net/brianmat/2nV5u/

私は問題なく、いくつかのサイトに取り組んできましたエラーカウントスニペットを使用する:あなたは、私が一緒に入れていますかを見ることができますので、ここで

は私のjsfiddleサンプルです。この例では、7つのテキストボックスをすべて空白にしても1つのエラーしか表示されません。

ここで私の主な違いは、アイテムをグループ化するために行間スパンを実行していることですが、どこに問題があるのか​​わかりません。私はこれがかなり簡単なものになることを知っているが、私はちょうどこの時点でそれに壁を打っている。

$.validator.addClassRules({ 
    NumericInput: { 
     required: true 
    } 
}); 

$("#theForm").validate({ 
    invalidHandler: function(e, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
      var message = errors == 1 ? 'You missed 1 field. It has been highlighted below' : 'You missed ' + errors + ' fields. They have been highlighted below'; 
      $("div.error span").html(message); 
      $("div.error").show(); 
     } else { 
      $("div.error").hide(); 
     } 
    }, 
    errorPlacement: function(error, element) {}, 
    submitHandler: function(form) { 
     $("div.error").hide(); 
     form.submit(); 
    } 
}); 

残りのコードは、単に小計と数値のみのデータ入力を処理します。jQueryのコードを検証

は空想何もありません。

私はこの問題を処理するために別のアプローチをとっているので、現在のコードを削除し、正しく動作するものを見つけることは問題ではありません。もし私が最終的にやっているのであれば、正方形のペグを丸い穴に収めようとしないでください。

答えて

12

厄介なname属性ということを忘れないでください:

<input id="Text1" name="Text1" type="text" class="NumericInput group1" materialgroup="1" /> 
<!--    ^^ --> 

更新例:http://jsfiddle.net/2nV5u/6/

また、すなわちdata-materialgroup代わりのmaterialgroupdata-*属性を使用して代わりの要素に独自の属性を追加することを検討)。

+2

さて、今私は馬鹿のように感じます。それはそれを固定しているように見え、私はそれが何か単純なものになるだろうという卑劣な疑惑を持っていました。ありがとう、トン! – BrianM

+0

また、属性要素に対してdata- *要素を調べましたが、attr()メソッドの呼び出しでは発生しないデータ形式の問題がいくつか見つかりました。私はそのルートをここで興味深いノートを読んだ後に行った。http://lookfirst.com/2011/12/dont-use-jquery-data-method-use-attr.html – BrianM

+0

@BrianM:その投稿の著者は正しいが、 '.attr(" data - * ")'を使ってデータを取得した場合、フォーマットに問題はありません。 –

関連する問題