目前,每次单击添加按钮时,我的代码都会克隆 3 个下拉列表。
我设法让它完全复制该行,因为之前,第一个下拉菜单会自行重置,但其他两个不会,所以我只是想知道如何重置所有 3 个下拉菜单?
在这个 JSFiddle 中最容易看到:
因此,如果您将第一个下拉列表更改为agent
然后单击 +,您将看到第二行出现重复,而我希望它重置为tags
,operands
和values
。
非常感谢任何帮助。
目前,每次单击添加按钮时,我的代码都会克隆 3 个下拉列表。
我设法让它完全复制该行,因为之前,第一个下拉菜单会自行重置,但其他两个不会,所以我只是想知道如何重置所有 3 个下拉菜单?
在这个 JSFiddle 中最容易看到:
因此,如果您将第一个下拉列表更改为agent
然后单击 +,您将看到第二行出现重复,而我希望它重置为tags
,operands
和values
。
非常感谢任何帮助。
您可以使用 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/
如果我理解您的问题,您希望重复的选择行重置它们的值。
在这种情况下,您可以删除它:
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);
找到克隆中的所有下拉列表。对于每个下拉列表,检查所选属性的每个选项标签并将其删除。像这样的东西:
clone.find('select').each(function() {
$(this).find('option').each(function() {
$(this).removeAttr('selected');
});
});
或者更好的是,在删除之前使用 :selected 过滤器仅查找选定的选项标签。