【问题标题】:How do I clean inputs after clone?克隆后如何清理输入?
【发布时间】:2021-03-04 22:55:36
【问题描述】:

我有这个代码来克隆一些输入文件:

var cloneId = 1;
$("#more-address").click(function()
{
    var clone = $("#delivery-address-container").clone(true);
    clone.find(".deliveryMethod").prop("name", "deliveryMethod" + "[" + cloneId + "]");
    cloneId++;
    clone.appendTo("#delivery-address-container");
});

如果如果在文件中写了一些东西,然后按下 ID 为 #more-address 的按钮,我也会在我的克隆中获得输入文件中的所有文本。如何清理克隆中的输入文件?

我已经测试将val("");放入我的代码中,但得到相同的结果并且没有这样的错误

var cloneId = 1;
$("#more-address").click(function()
{
    var clone = $("#delivery-address-container").clone(true);
    clone.find(".deliveryMethod").prop("name", "deliveryMethod" + "[" + cloneId + "]").val("");
    cloneId++;
    clone.appendTo("#delivery-address-container").val("");
});

我也测试过在cloneId++;之后使用这个

cloneId++;
clone.val("");
    

【问题讨论】:

    标签: javascript jquery clone


    【解决方案1】:

    .val('') 只会在集合中设置 one 输入的值,并且只有在 jQuery 集合是输入的集合时才会这样做。如果集合是容器(如#delivery-address-container),则使用.val 不会做任何事情。

    您需要选择作为克隆后代的输入,而不仅仅是在克隆容器上调用.val

    clone.find('input').val('');
    

    您还在 HTML 中创建了重复的 ID(使用 #delivery-address-container),这是无效的标记 - 请考虑删除该 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 2014-08-19
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多