2012-04-12 7 views
0

私はjQueryフォームウィザードプラグインを使用しています。私は3つの答えを持つ20の質問があります。それぞれの答えには重みがあります。各質問について、回答の総重量は10でなければなりません。複数の入力間で値を検証するためのフォームの検証を確認

<fieldset id="first" class="step"> 
    <input type="text" size="2" maxlength="2" value="" name="question1[]" class="required"/>A: Inspiring others with a compelling vision for change.<br /> 
    <input type="text" size="2" maxlength="2" value="" name="question1[]" />B: Engaging others to buy-into the change.<br /> 
    <input type="text" size="2" maxlength="2" value="" name="question1[]" />C: Executing a project plan and managing accountabilities.<br /> 
    <label for="question1[]" class="error" style="display:none;">Your values must add up to 10!</label> 
</fieldset> 

これは基本的に人格評価です。私はAとCが適用されないと思うと、私はAのために10で入力します。

各フィールドセットが最大10を追加していないかどうかを確認する方法はありますか?

私はそれが数字をチェック知っているように、私も取得するには、以下に沿って何かを追加しようとしたなど、

を私はjQueryの検証プラグインを使用していますが、これは少しも特異的であるように思われます必要なチェックは合格するが、私はここから行くことがどこか分からない:

$(document).ready(function() { 
    $("#Form").validate({ 
     submitHandler: function(form) { 
      form.submit(); 
     } 
    }); 
    $("#Form input[name='question1']").each(function() { 
     $(this).rules("add", { 
      required: true, 
      maxlength: 2, 
      messages: { 
       required: "Required", 
       minlength: jQuery.format("Max length of {2} characters.") 
      } 
     }); 
    }); 
}); 

また、私はjQueryの検証は、配列を収容するように編集機能を持っていたことを発見しました。私もこれを試してみました

checkForm: function() { 
    this.prepareForm(); 
    for (var i=0, elements=(this.currentElements = this.elements()); elements[i]; i++) { 
     if (this.findByName(elements[i].name).length != undefined && 
      this.findByName(elements[i].name).length > 1) { 

      for (var cnt = 0; cnt < this.findByName(elements[i].name).length; cnt++) { 
       this.check(this.findByName(elements[i].name)[cnt]); 
      } 
     } 
     else { 
      this.check(elements[i]); 
     } 
    } 
    return this.valid(); 
} 

:この

$(document).ready(function(){ 
    $("#Form").validate({ 
     rules: { 
      question1: { 
       required: true 
      } 
     }, 
     submitHandler: function(form) { 
      form.submit(); 
     } 
    }); 
}); 

どれも私に「必要な」エラーを与えるために動いていないようにみえ私は、次の機能を変更しました。コンソールにエラーはありません。私は、 "次へ"ボタンが押されるたびにこれを検証する必要があります。次のボタンにはtype=submitがあるので、理論的には少なくとも質問1は必須ではなく無駄だと言わなければなりません。

$().ready(function() { 
    // validate the comment form when it is submitted 
    $("#Form").validate({ 
     rules: { 
      "question1[]": "required" 
     }, 
     messages: { 
      "question1[]": "Input is required", 
     } 
    }); 
}); 

しかし、それはエラーなしで次のフィールドセットに移行:

私もこれを試してみました。

+0

私はこのすべてに新しいことを確認しようとしているだけで、その可能性もあります。 – RezenX

+0

もちろん可能です。何でも可能です。 – Dutchie432

+0

ええ私は質問をし、-1ハハを得る。素敵な、私のランクを構築しようとしているように。私はちょうどそれがこのカスタム検証のすべてになると失われた – RezenX

答えて

1

この場合、無効になっている新しい入力を作成し、個々の加重値が変更されたときに、この無効な入力の値を合計に変更します。無効になっている入力を検証する - 値が10であることを要求し、値が10でない場合はエラーを表示する。

+0

私はこのアイデアが好きです。私はそれを行ってみましょう。 – RezenX

+0

素晴らしい提案。意図したように完璧に動作します!おかげで、サンプルコードを貼り付けるので、一度完全にアイロンをかけてみると、皆さんはそれを見ることができます。 – RezenX

+0

ありがとう、私は助けることができてうれしいです。 –

関連する問題