根据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;
});
答案 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/