Jquery 单击创建的文本字段时,该字段丢失

Jquery 单击创建的文本字段时,该字段丢失,jquery,Jquery,我正在试验jquery,在使用我在网上找到的脚本时遇到了问题 在输入要创建的文本字段的数量后,文本字段出现了,但单击后就消失了。我真的很感谢你在这方面的帮助。谢谢 $(function() { var input = $('<input type="text" />'); var newFields = $(''); $('#qty').bind('blur keyup change', function() { var n = this.value || 0;

我正在试验jquery,在使用我在网上找到的脚本时遇到了问题

在输入要创建的文本字段的数量后,文本字段出现了,但单击后就消失了。我真的很感谢你在这方面的帮助。谢谢

$(function() {

var input = $('<input type="text" />');
var newFields = $('');

$('#qty').bind('blur keyup change', function() {
    var n = this.value || 0;
    if (n+1) {
        if (n > newFields.length) {
            addFields(n);
        } else {
            removeFields(n);
        }
    }
});

function addFields(n) {
    for (i = newFields.length; i < n && i<20; i++) {
        var somestr = "Length of Sample ";
        var num = i+1;
        var newInput = input.clone();
        newFields = newFields.add(newInput);           
        $('#newFields').append(somestr+num+":");
        newInput.appendTo('#newFields');
    }
}

function removeFields(n) {
    var removeField = newFields.slice(n).remove();
        $('#newFields').remove();
    newFields = newFields.not(removeField);
}
});
$(函数(){
变量输入=$('');
var newFields=$('');
$('#qty').bind('blur keyup change',function(){
var n=this.value | | 0;
如果(n+1){
如果(n>newFields.length){
addFields(n);
}否则{
移除字段(n);
}
}
});
函数addFields(n){

对于(i=newFields.length;iblur
,此时不再选择输入字段

$('#qty').bind('blur', function() {
    ... The function ...


在玩了一会儿之后,我发现它在第一次删除某些对象时出现了一些错误。我对它进行了一段时间的处理,但后来决定不使用单独的
add
remove
方法,而只使用
set
方法。它工作得非常好。唯一的缺点是没有保留旧输入(因此每次刷新时其字段将为空)

谢谢您的帮助。用另一个数字替换初始数字后,文本字段不会被创建。再次感谢!我知道您在说什么,如果您输入一个数字,请单击“关闭”,然后输入一个较小的数字,它会断开。修复它now@user3338267更新了我的答案,并针对删除错误进行了改进@Zach Saucier Thank!Was pla我已经创建了一个表(标签),并尝试编辑脚本,以便创建的每个文本字段都有:-它是“标签”插入到第一列中,它本身将是一行-第二列中的输入,与相应的标签位于同一行上。很抱歉给您带来麻烦。@user3338267这将需要更改javascript一段时间才能将其附加到多个
td
s,不在本问题的范围内。请您自己尝试一下,sl继续,然后在StackOverflow上问一个新问题,如果你被卡住了(: