我有一个使用jQuery动态更改的表单,具体取决于选择的下拉框选项。
在这种特殊情况下,我有一个名为“事件类型”的下拉列表,用户可选择“婚礼”或“私人聚会”。这个选择会影响下一个下拉列表中的内容,即“选择一个包”,有6个包可供选择,用于“婚礼”,比如包a,b,c,d,e和f,但仅适用于“私人聚会”包a,c和e。
当选择“私人派对”时,我一直在使用.remove功能去除选项b,d和f - 但是如果我在选择“私人派对”后选择“婚礼”(如果是用户错误地选择了错误的选择) - 我删除的选项不会回来。
这是我正在使用的代码(我还必须将您看到的包的名称更改为以下代码):
$('#eventType').change(function() {
var eventTypeName = $("#eventType option:selected");
if (eventTypeName.is('[name="private_party"]') ) {
$('#band_type_choices option[name="acoustic"]').text('Lace');//lace
$('#band_type_choices option[name="jazz"]').text('Satin');//satin
$('#band_type_choices option[name="acoustic_jazz"]').remove();//lace+satin
$('#band_type_choices option[name="party"]').text('Silk');//silk
$('#band_type_choices option[name="acoustic_party"]').remove();//lace+silk
$('#band_type_choices option[name="jazz_party"]').remove();//satin+silk
$('#band_type_choices option[name="acoustic_jazz_party"]').text('Brocade');//brocade
}
});
当我的用户为事件类型选择不同的选项时,有人能告诉我如何动态地将这些选项重新放回去 感谢
答案 0 :(得分:1)
.remove()
将从列表中完全删除选项。而是使用.attr('disabled', 'disabled')
禁用选项列表。
然后当用户选择weddings
通过制作.attr('disabled', 'false')
更好的方法是使用.hide()
而不是remove()
否则,您需要为每个选项重建选项菜单两次。这将导致代码重复。