创建的文本字段在单击时丢失

时间:2014-02-21 17:26:48

标签: jquery

我正在尝试使用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);
}
});

1 个答案:

答案 0 :(得分:0)

我只会将你的函数绑定到blur,这是不再选择输入字段的时候

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

Demo

经过一段时间的游戏后,我发现在第一次删除后删除一些对象时出现了一些错误。我搞砸了一段时间但后来决定最简单的方法就是没有单独的addremove,而只是一个set方法。 Check out the demo,它完美无缺。唯一的缺点是你不保留旧的输入(因此每次刷新时它们的字段都是空的)