2013-05-18 47 views
0

我有形式的總和數字,但我希望中間輸入被jQuery跳過求和。請幫助我在這裏發佈代碼。它肯定必須是輸入標籤,因爲它將數據發送到PHP。我花了很多時間來解決這個問題,但我看不出問題所在。總和輸入值,並跳過其中之一jQuery

jQuery的

var total; 
    $("input.amount").keyup(function() { 
     total = 0; 
     $(this).parents("table").find("input.amount").each(function() { 
      total += parseInt($(this).val()); 
     }).end().find("span.total").html(total); 
    }); 

HTML

<form class="calc"> 
    Form 1 
    <br /> 
    <table border="0"> 
     <tr> 
      <td> 
       Amount 1 
      </td> 
      <td> 
       <input class="amount" type="text" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Amount 2 
      </td> 
      <td> 
       <input class="amount" type="text" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Amount 3 
      </td> 
      <td> 
       <input class="amount" type="text" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Total Amount 
      </td> 
      <td> 
       <span class="total">0</span> 
      </td> 
     </tr> 
    </table> 
    </form> 
+0

M中間輸入?不幸的是,我們無法讀懂你的想法。你能否提供我們更具體的細節? –

+1

如果我正確地理解了你,你想要跳過'金額2'字段添加到總和?如果你的意思是你可以改變輸入的類。你用'input.amount'匹配元素,所以如果Amount 2輸入沒有'amount'類,它不會被jQuery捕獲。 –

+0

刪除金額2文本框中的'class =「amount」'。 –

回答

2

簡單地改變HTML標記來給你希望忽略一個新的類或data-*屬性的輸入。

<input class="amount ignored" type="text" /> 

然後在你的.each()循環檢查類:

if(!$(this).hasClass('ignored')) 
    total += parseInt($(this).val()); 

,如果你走了數據 - *路線,你可以使用:

<input class="amount" type="text" data-ignored="true" /> 

並檢查確保數據屬性設置爲:

if(!$(this).data('ignored')) 
    total += parseInt($(this).val()); 
+0

這是有趣的,但你可以告訴我jsfiddle這裏是鏈接[鏈接](http://jsfiddle.net/3DB6r/) – Lasha

+0

@拉莎http://jsfiddle.net/3DB6r/4/兩個「金額2 「文本框被忽略。 –

+0

我不知道爲什麼,但在jsfiddle它工作,但在HTML沒有...現在該怎麼辦? :(( – Lasha