2011-09-23 82 views
1

根據example,我希望在每次添加新的輸入與數字放在字段(1,2,3),從每個新的輸入數增加在輸入中加入name[+number increasing here+][]問題在for循環添加新的輸入數字增加

Example:這個例子沒有工作真正

我想這樣:

如果投入到 「字段1」 的個數2我們得到拖新的輸入該命名是 name[0][], name[1][]
在「場2」把號碼3我們得到 name[2][], name[3][], name[4][]
在「字段3」把號碼2我們 得到name[5][], name[6][]

代碼(如何,固定VAL未來通過一個字符串不是int!?):

var counter = 0; 
$('input').live("keyup", function() {  
    var id = '#'+$(this).closest('b').attr('id'); 
    $(id+' .lee').empty();  
    var val = int($(this).val()); 
    for (var i = counter; i < val + counter; i++) { 
     $(id+' .lee').append('<input type="text" name="hi['+i+'][]">');   
    } 
    counter = val + counter; 
}); 

回答

0

編輯:我重讀你的問題並相信我有了你的期望行爲的解決方案:

中的JavaScript:

var counter = 0; 
$('input').live('keyup', function(e) { 
    // bail out if the keypress wasn't a number 
    if (e.which < 48 || e.which > 57) { return; } 

    // get the current value of the input 
    var val = +$(this).val(); 

    // don't do anything if we don't have a valid number 
    if (isNaN(val)) { return; } 

    // find and empty .lee 
    var $lee = $(this).closest('b').find('.lee').empty(); 

    // create inputs 
    for (var i = 0; i < val; i++) { 
     $('<input type="text"/>').attr('name', 'hi[' + (counter + i) + '][]') 
      .appendTo($lee); 
    } 

    // update our counter 
    counter = val + counter; 
}); 

下面是更新後的jsfiddle:http://jsfiddle.net/wAwyR/14/

+0

這不是我的代碼工作:是什麼原因?請看:http://jsfiddle.net/BnjFH/1/ –

+0

嗯,首先,你改變了我的代碼: )。您不再將字符串值轉換爲int(前面的「+」字符很重要)。你不一致地命名'val'變量(有時'val'有時'$ val')。而'unique'沒有在任何地方定義,所以我不知道應該怎麼做.... – jmar777