2012-05-01 230 views
2

我有兩個隱藏的輸入字段在我的表單上,我已鏈接到jQuery驗證規則。這些都是「全局」形式規則(例如多個字段的總數不等於100%),所以我在表單頂部使用隱藏字段來顯示適用於整個表單的消息。jQuery驗證只驗證第一個隱藏的輸入元素?

他們是這樣定義的:

<input type="hidden" class="futuretotalsunder"/> 
<input type="hidden" class="futuretotalsrequired"/> 

這裏是我的規則定義。你可以明白這一點。第一條規則檢查是否有一堆文本框的總數高達< 100,第二次檢查以確保總數不爲0.問題是,唯一觸發的是適用於第一個隱藏的文本框輸入元素。第二個從不發射。任何想法爲什麼?

$.validator.addMethod("futuretotalsunder", function (val, element, params) { 
     alert("under"); 
     var total = 0; 

     $(".TransferPercentTextBox").each(function() { 
      total = total + parseInt($(this).val()); 
     }); 

     if ((total < 100) && (total != 0)) { 
      window.location.href = "#Top"; 
      return false; 
     } 
     else { 
      return true; 
     } 
    }, "Total percentage must equal 100%."); 

    $.validator.addMethod("futuretotalsrequired", function (val, element, params) { 

     var total = 0; 

     $(".TransferPercentTextBox").each(function() { 
      total = total + parseInt($(this).val()); 
     }); 

     if (total == 0) { 
      window.location.href = "#Top"; 
      return false; 
     } 
     else { 
      return true; 
     } 
    }, "Transfer amount must be greater than 0."); 
+0

你的問題與asp.net或mvc有任何關係?您將其標記爲(可能是您的後端技術),但看起來您的問題僅限於前端JS。你有沒有留下一些互動? –

+0

是的,這是我的後端技術。 (asp.net MVC),但我不知道如何標記它。我想清楚了,下面會回答。 –

回答

4

我想通了。問題(奇怪)是我的輸入元素沒有名稱屬性。一旦我添加它們,它工作得很好。

+0

+1用於添加名稱屬性。也爲我解決了類似的問題。 – SausageFingers

+0

在我的情況下,我也有兩個沒有名字的輸入字段。奇怪的是一個沒有名字的作品,但第二個需要一個名字。所以現在我輸入#1沒有名字,輸入#2有名字。 –