for循环中的问题用于添加数字增加的新输入

时间:2011-09-23 16:01:34

标签: javascript jquery for-loop

根据example,我想在每次添加新输入时将数字放在字段(1,2,3)中,每个输入中的数字从新输入中增加到name[+number increasing here+][]输入

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;
});

1 个答案:

答案 0 :(得分: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/