2014-07-10 61 views
0

我需要你的幫助!無法獲得最近的prev td輸入值

我有fiddle,我想要的是將兩個td的值相乘,結果轉到下一個td。

​​

但只是工程與第一排,因爲第二個仍然與第一排的TD不是實際的TD multiplicating

我試圖改變:

var Cant = $("#item_Cant").text(); 

var Cant = $("input[id^='item_Cant']").text(); 

但是不行,我不知道爲什麼,甚至是第一排。

但在這一行我需要正確的Jquery獲取最後的TD輸入值在同一個TR。

我嘗試了很多路線但沒有成功,希望你能理解我。

感謝您的幫助。

+0

我會開始,**的ID都是唯一的**! – adeneo

+0

我會嘗試更改相同的ID,因爲是一個複雜的表與PHP和MySQL,對不起。 – user3810795

回答

1

您每次計算時總是指item_Cant ID。您需要根據當前輸入字段查找數量元素。

這裏有一個辦法,將與當前的結構工作:

$(document).ready(function() { 
    $("input[id^='unitval']").keyup(function() { 
     var input_value = parseFloat($(this).val()); 
     var Cant = $(this).closest('tr').find('[id^="item_Cant"]').text(); 
     var totval = (input_value * Cant); 

     if (!isNaN(input_value)) { // the input is a number 
      //$("#totval1").val(totval); // update second field 
      $(this).closest('td').next().find('input').val(totval); 

     } else { // the input wasn't a number 
      $("#totval1").val("not a number?"); // show an error mesage 
     } 
    }); 
}); 

這裏有一個小提琴:http://fiddle.jshell.net/P89Tj/1/

+0

@JaredFarrish你不能假定每個人都有權改變HTML。爲什麼改變你所擁有的結構是不可行的,這有很多原因。這是提供給JS開發人員的解決方案。 – sahbeewah

+0

@JaredFarrish請實際閱讀代碼並認識到沒有重複的ID,並且是的,在此特定場景中需要屬性選擇器。另外,你的小提琴壞了。 – sahbeewah

+0

男人,我無法做出與結果的列底部的總和,你能幫我嗎? [小提琴](http://fiddle.jshell.net/MetCastle/P89Tj/)感謝您的幫助。 – user3810795

1

你不能有一個頁面上有多個相同的ID。

使用類來代替:

$(document).ready(function(){ 
$("input.unitval").keyup(function() { 

var input_value = parseFloat($(this).val()); 
var Cant = $(this).parent().prev().text(); 
var totval = (input_value * Cant); 

    if (!isNaN(input_value)) { // the input is a number 
    //$("#totval1").val(totval); // update second field 
     $(this).parent().parent().find('.totval').val(totval); 

    } else { // the input wasn't a number 
     $("#totval1").val("not a number?"); // show an error mesage 
    } 
}); 
}); 

<table width="500" border="1"> 
    <tr> 
     <td>Quantity</td> 
     <td>VAL1</td> 
     <td>RESULT Quantity*VAL1</td> 
     <td>VAL2</td> 
     <td>RESULT Quantity*VAL2</td> 
    </tr> 
    <tr> 
     <td>5</td> 
     <td><input class="unitval" type="text"/></td> 
     <td><input readonly class="totval" type="text"/></td> 
     <td><input class="unitval" type="text"/></td> 
     <td><input readonly class="totval" type="text"/></td> 
    </tr> 
    <tr> 
     <td>4</td> 
     <td><input class="unitval" type="text"/></td> 
     <td><input readonly class="totval" type="text"/></td> 
     <td><input class="unitval" type="text"/></td> 
     <td><input readonly class="totval" type="text"/></td> 
    </tr> 

</table> 

http://fiddle.jshell.net/8CGXf/