Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 随着数字的增加,添加新输入的for循环中出现问题_Javascript_Jquery_For Loop - Fatal编程技术网

Javascript 随着数字的增加,添加新输入的for循环中出现问题

Javascript 随着数字的增加,添加新输入的for循环中出现问题,javascript,jquery,for-loop,Javascript,Jquery,For Loop,根据,我希望在每次添加新输入时,在字段(1、2、3)中输入数字,从新输入增加到输入中的name[+number increasing here+][ 这个例子不适用 我想要这个: 如果输入到“字段1”编号2,我们将得到两个新输入,即名称 name[0][],name[1][]在“字段2”中输入编号3我们得到 名称[2][]、名称[3][]、名称[4][]在“字段3”中输入编号2we 获取名称[5][]、名称[6][]等 代码(如何,固定值作为字符串而不是int!?): var计数器=0; $('

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

这个例子不适用

我想要这个:

如果输入到“字段1”编号
2
,我们将得到两个新输入,即名称
name[0][],name[1][]

在“字段2”中输入编号
3
我们得到
名称[2][]、名称[3][]、名称[4][]

在“字段3”中输入编号
2
we 获取
名称[5][]、名称[6][]

代码(如何,固定值作为字符串而不是int!?):

var计数器=0;
$('input').live(“keyup”,函数(){
var id='#'+$(this.nexist('b').attr('id');
$(id+'.lee').empty();
var val=int($(this.val());
对于(变量i=计数器;i
编辑:我重新阅读了您的问题,并相信我有一个符合您期望行为的解决方案:

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;
});
var计数器=0;
$('input').live('keyup',函数(e){
//如果按键不是一个数字,就退出
如果(e.which<48 | | e.which>57){return;}
//获取输入的当前值
var val=+$(this.val();
//如果我们没有有效的号码,什么都不要做
if(isNaN(val)){return;}
//找到并清空,李
var$lee=$(this.closest('b').find('.lee').empty();
//创建输入
对于(变量i=0;i

下面是更新后的JSFIDLE:

首先,您更改了我的所有代码:)。您不再将字符串值强制转换为int(前面的“+”字符很重要)。您对
val
变量的命名不一致(有时
val
有时
$val
)。而且,
unique
在任何地方都没有定义,所以我不确定应该做什么。。。。
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;
});