根据example ,我希望每次添加新输入时都将数字放入字段(1,2,3)中,每个数字都从新输入中增加到名称[+此处增加的数字+][]
输入。
<强> Example: 这个例子没有成功
我想要这个:
if put to "field 1" number
2
we get tow new input that name it isname[0][], name[1][]
in "field 2" put number3
we getname[2][], name[3][], name[4][]
in "field 3" put number2
we getname[5][], name[6][]
and etc.
代码(如何固定 val 作为字符串而不是整数!?):
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;
});
最佳答案
编辑:我重新阅读了您的问题,并相信我有一个具有您所需行为的解决方案:
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/
关于javascript - for 循环中添加数字不断增加的新输入时出现的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531770/