gpt4 book ai didi

javascript - 创建重复表单部分,删除字段值

转载 作者:行者123 更新时间:2023-12-02 17:04:38 28 4
gpt4 key购买 nike

我有一个带有重复部分的表单。为了创建重复部分,我使用了此代码的一个细微变体:

// Add a new repeating section
var attrs = ['for', 'id', 'name'];
function resetAttributeNames(section) {
var tags = section.find('input, label'), idx = section.index();
tags.each(function() {
var $this = $(this);
$.each(attrs, function(i, attr) {
var attr_val = $this.attr(attr);
if (attr_val) {
$this.attr(attr, attr_val.replace(/_\d+$/, '_'+(idx + 1)))
}
})
})
}

$('.addFight').click(function(e){
e.preventDefault();
var lastRepeatingGroup = $('.repeatingSection').last();
var cloned = lastRepeatingGroup.clone(true)
cloned.insertAfter(lastRepeatingGroup);
resetAttributeNames(cloned)
});

// Delete a repeating section
$('.deleteFight').click(function(e){
e.preventDefault();
var current_fight = $(this).parent('div');
var other_fights = current_fight.siblings('.repeatingSection');
if (other_fights.length === 0) {
alert("You should atleast have one fight");
return;
}
current_fight.slideUp('slow', function() {
current_fight.remove();

// reset fight indexes
other_fights.each(function() {
resetAttributeNames($(this));
})
})
});

JSFiddle - http://jsfiddle.net/Unfxn/27/

我最初从这个线程中找到了代码: Repeating div with form fields

但是,此代码存在一个问题:如果您填写表单字段,然后单击“添加战斗”,则新的重复部分不仅会复制表单字段,还会复制它们的值。我想我需要使用类似的方法来清除新表单部分的值:

$(this).closest('form').find("input[type=text], textarea").val("");

但我不知道如何将其合并到我已有的功能中。那么,一旦创建了新的表单部分,如何清除字段的值呢?

最佳答案

您可以从新克隆的所有输入字段中删除所有值:

cloned.find("input").val("");

jsfiddle

编辑:

要重置单选组,您可以将其选中的值设置为 false:

cloned.find("input:radio").attr("checked", false);

Updated jsfiddle

关于javascript - 创建重复表单部分,删除字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25373386/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com