克隆其中包含文本的字段也会克隆文本?

时间:2010-08-12 12:10:31

标签: javascript jquery

我有一段克隆三个字段的代码,但是当它克隆了三个字段时,它还克隆了在其中输入的文本,有没有办法在克隆时清除字段内的内容?< / p>

$(document).ready(function() {
    $('#btnAdd').click(function() {
        var num     = $('.clonedSection').length;
        var newNum  = new Number(num + 1);

        var newSection = $('#clonedSection' + num).clone().attr('id', 'clonedSection' + newNum);

        newSection.children(':first').children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum);
        newSection.children(':nth-child(2)').children(':first').attr('id', 'age' + newNum).attr('name', 'age' + newNum);
        newSection.children(':nth-child(3)').children(':first').attr('id', 'school' + newNum).attr('name', 'school' + newNum);

        $('.clonedSection').last().append(newSection);
        $('.clonedSection').last().val(ping);

        $('#btnDel').attr('disabled','');

        if (newNum == 2)
            $('#btnAdd').attr('disabled','disabled');
    });

    $('#btnDel').click(function() {
        var num = $('.clonedSection').length; // how many "duplicatable" input fields we currently have
        $('#clonedSection' + num).remove();     // remove the last element

        // enable the "add" button
        $('#btnAdd').attr('disabled','');

        // if only one element remains, disable the "remove" button
        if (num-1 == 1)
            $('#btnDel').attr('disabled','disabled');
    });

    $('#btnDel').attr('disabled','disabled');
});

提前Thanx!

3 个答案:

答案 0 :(得分:1)

只需使用value.attr("value", "")属性设置为空字符串(我假设您正在讨论<input type="text" />):

newSection.children(':first').children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum).attr('value', '');

答案 1 :(得分:1)

你正在做.clone(),你可以找到/清除字段,如下所示:

.clone().find(':text, textarea').val('').end()

如果您没有<textarea>元素,那么请忽略这一点,这样做的目的是执行.find()获取文本元素,.val()清除它们.end() 3}}之后使用coned元素返回链,而不是我们正在寻找的文本元素。

或者,或者,如果这些行是您的输入:

newSection.children(....)

只需在每个结尾添加一个.val(''),例如第一个看起来像这样:

newSection.find('> :first > :first').attr({'id': 'name' + newNum, 'name': 'name' + newNum }).val('');

答案 2 :(得分:1)

您可以清除输入元素:

newSection.find(':input').val('');