【问题标题】:Filter selectbox options depending on primary choice根据主要选择过滤选择框选项
【发布时间】:2012-07-03 19:57:47
【问题描述】:

我正在创建一些选择框,我需要根据主节点中的选择来限制我的选项。

基本上我有Select field 1Select field 2

这些选择框的数据是从数据库中解析出来的。

选择字段 1:

errortype_id | errortype_text

选择字段 2:

errorreason_id | errortype_id | errorreason_text

是否有一种简单的方法可以根据Select field 1 中的选择自定义Select field 2 中的选项数据?我在Select field 2 表中有要过滤的变量/属性。

【问题讨论】:

  • 是的,您可以“过滤”选项
  • @Xander,你能否指导我这是如何完成的(jquery)?谢谢。

标签: javascript jquery


【解决方案1】:

this question。基本上,您需要添加一个更改事件并检查$(this).val()。从那里您只需创建选项元素并将它们作为 html 添加到您的选择框 2。

$('#select1').change(function() {
    var options = '';
    if($(this).val() == 'a') {
        options = '<option value="1">1</option><option value="2">2</option>';
    }
    else if ($(this).val() == 'b'){
        options = '<option value="3">3</option><option value="4">4</option>';
    }

    $('#select2').html(options);
});

编辑:我不明白您是否想实际过滤值、删除值或添加任意数量的值。如果您真的想过滤掉元素,您可以使用我的更改事件并将其与.filter() 结合使用。

【讨论】:

  • 基本上我认为这就是我需要的。忘记所有关于过滤的事情,在这种情况下,我已经意识到这无关紧要。 I can filter with PHP and use the change and val as you described to populate select2 with the proper options from the choosen select1
  • 另一个问题。我有 3 个需要相同数据和行为的选择框,我怎样才能避免为它们复制 javascript?
  • 如果最终您所做的只是根据值更改 select2 的选项,您可以在更改事件中添加多个选择框。 $('#select1, #select3, #select4').change()...
  • 它们不应该全部更改为相同的值,而是单独更改,我假设它们会更改为相同的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2013-05-02
  • 2013-07-10
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多