2010-09-15 94 views
3

我想爲我設置的動態表單使用jQuery驗證。JQuery驗證:如何添加檢查多個字段總和的驗證?

在某些情況下,這種形式的包含了一組輸入框被假設以總價100

一個例子可能是:

請註明多大比例的學生在每個年級? 9
牌號:TextBox1中
等級10:TextBox2中
等級11:TextBox3
等級12:TextBox4

我想驗證TextBox1中+ TextBox2中+ TextBox3 + TextBox4 = 100%。

我該如何解決這個問題?

謝謝!

回答

6
<script> 
$(document).ready(function(){ 
    $("#some-form").validate({ 

     rules: { 
      TextBox1: { 
       required: true, 
       number: true, 
       min: 0, 
       max: 100, 
      }, 
      TextBox2 : { 
       required: true, 
       number: true, 
       min: 0, 
       max: 100, 
      } 
      TextBox3 : { 
       required: true, 
       number: true, 
       min: 0, 
       max: 100, 
      } 
      TextBox4 : { 
       required: true, 
       number: true, 
       min: 0, 
       max: 100, 
      } 

     }, 
     submitHandler: function(form){ 
      var total = parseInt($("#TextBox1").val()) + parseInt($("#TextBox2").val()) + parseInt($("#TextBox3").val()) + parseInt($("#TextBox4").val()); 
      if (total != 100) { 
       $(".error").html("Your total must sum to 100.") 
       return false; 
      } else form.submit(); 
     } 

    }); 
}); 

</script> 

被盜編輯from here

+0

Hrm ...這絕對是一個有效的答案(並非常完整)。但不完全是我在找什麼。問題是可能有超過1組需要驗證的字段。此外,字段名稱是在運行時生成的,所以JavaScript也需要以動態方式寫出來。無論哪種方式,這是一個很好的起點!我可以從這裏拿到它,但如果你有任何建議,可以隨時添加一些建議。謝謝! – Justin 2010-09-15 18:29:29

+0

不用擔心@Justin。如何使用簡單的.sum()方法(http://viralpatel.net/blogs/2009/07/sum-html-textbox-values-using-jquery-javascript.html)來計算文本框數組?您可以使用每個** SET **文本框都有一個不同的類名,然後如果你願意,甚至可以在.keyup()事件上驗證。我不確定**規則**是什麼,但是你可以發佈關於如何使用類名驗證元素集的另一個問題。 – Marko 2010-09-15 21:15:15