2012-04-23 69 views
0

我有簡單的 code來增加和減少字段。一切都很好,但我不知道有多少領域(它是由mvc生成的)我的問題是如何智能綁定頁面上每個字段的兩個按鈕? 我試過使用$(this.id+"x").val(currentVal - 1),但我認爲這是錯誤的。jquery動態生成字段的增量和減量

感謝您的任何建議

附加:

  1. 我不能使用jQuery Mobile的範圍內輸入。
  2. 文本框「文本引腳#4」必須總是聚焦。
  3. 所有按鈕都必須可以點擊移動設備。

回答

1

您可以選擇相對於已觸發其上的事件的一個元素代替:

$(".bplus").click(function() { 

    //find the input relative to this element 
    $(this).closest('td').prev().children('input').val(function (i, oldValue) { 

     //make sure the old value is being interpreted as an integer 
     oldValue = parseInt(oldValue, 10); 

     //if the old value is a valid integer below 999 then add one, 
     //otherwise return 999 
     return (oldValue != NaN && oldValue < 999) ? (oldValue + 1) : 999; 
    }); 
}); 

$(".bminus").click(function() { 

    //find the input relative to this element 
    $(this).closest('td').next().children('input').val(function (i, oldValue) { 

     //make sure the old value is being interpreted as an integer 
     oldValue = parseInt(oldValue, 10); 

     //if the old value is a valid integer above 0 then subtract one, 
     //otherwise return 0 
     return (oldValue != NaN && oldValue > 0) ? (oldValue - 1) : 0; 
    }); 
}); 

這裏是一個演示:http://jsfiddle.net/uSzr7/16/

這裏是一些文件爲亞:

另一種方式來處理驗證總是添加或減去一個但添加一個change事件處理程序與input元素進行檢查以確保該值有效。由於您使用的是type="number"輸入標籤,這有助於使用原生窗體控件。

0
$(".bplus").click(function(){ 
    var txtField = $(this).parents('tr').find('input[type="number"]') 
    var currentVal = parseInt(txt.val()); 
    if (currentVal < 999) 
     txtField.val((currentVal || 0) + 1); 
}); 

我把(currentVal || 0),這意味着如果currentVal==NaN,它將被0

+0

螢火錯誤: '輸入沒有被定義 誤差源極線: 變種txtField = $(本)。家長( 'TR')找到(輸入[類型= 「號碼」])' – maksim09 2012-04-23 18:11:09

+0

抱歉,缺少引號,我更正 – Tronix117 2012-04-23 19:40:57

+0

請檢查此鏈接 http://magentocodes.blogspot.in/2013/11/simple-jquery-increment-decrement-on.html – 2014-04-14 10:13:05