1

目前,每次单击添加按钮时,我的代码都会克隆 3 个下拉列表。

我设法让它完全复制该行,因为之前,第一个下拉菜单会自行重置,但其他两个不会,所以我只是想知道如何重置所有 3 个下拉菜单?

在这个 JSFiddle 中最容易看到:

http://jsfiddle.net/jydqK/7/

因此,如果您将第一个下拉列表更改为agent然后单击 +,您将看到第二行出现重复,而我希望它重置为tags,operandsvalues

非常感谢任何帮助。

4

3 回答 3

2

您可以使用 removeAttr 删除selected属性,然后触发 change() 事件。

在你的情况下:

dropdownclone.find('select.tags option:selected').removeAttr('selected');
dropdownclone.find('select.tags option:first').attr('selected','selected');
dropdownclone.find('select.tags').trigger('change');

修改示例:http: //jsfiddle.net/ZF3mc/2/

于 2011-04-21T14:01:37.307 回答
1

如果我理解您的问题,您希望重复的选择行重置它们的值。

在这种情况下,您可以删除它:

dropdownclone.find('select').each(function(index, item) {
 //set new select to value of old select
$(item).val( $dropdownSelects.eq(index).val() );
});

并将其替换为:

dropdownclone.find('option').attr('selected', false);
于 2011-04-21T13:59:14.613 回答
-1

找到克隆中的所有下拉列表。对于每个下拉列表,检查所选属性的每个选项标签并将其删除。像这样的东西:

clone.find('select').each(function() {
    $(this).find('option').each(function() {
        $(this).removeAttr('selected');
    });
});

或者更好的是,在删除之前使用 :selected 过滤器仅查找选定的选项标签。

于 2013-06-25T04:58:38.553 回答