Jquery .remove元素,如果选择,但然后追加

时间:2014-05-16 05:55:52

标签: jquery text onchange

我有一个使用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

}

});

当我的用户为事件类型选择不同的选项时,有人能告诉我如何动态地将这些选项重新放回去 感谢

1 个答案:

答案 0 :(得分:1)

.remove()将从列表中完全删除选项。而是使用.attr('disabled', 'disabled')禁用选项列表。

然后当用户选择weddings通过制作.attr('disabled', 'false')

来重新设置菜单时

更好的方法是使用.hide()而不是remove()

隐藏该选项

否则,您需要为每个选项重建选项菜单两次。这将导致代码重复。