使用jquery过滤选择选项

时间:2013-06-18 16:40:09

标签: jquery ruby-on-rails-3 forms dynamic-data

我有一个选择菜单,其中每个选项的文本以关键字开头(即 - “Nike Running Shoes”...... Nike是关键字)。我希望有一个包含关键字列表的第二个静态选择...然后能够通过所选关键字过滤第二个列表选项。

因此,如果用户选择了关键字“Nike”,则第二个列表将被过滤为仅包含以“Nike”开始测试的选项。

这是我到目前为止创建的jquery ......但它不起作用

jQuery ->
subjects = $('#subject_select').html()
$('#keyword_select').change ->
    keyword = $('#keyword_select :selected').text()
    options = $(subjects).filter("option[text^='#{keyword}']").html()

    if options
        $('#subject_select').html(options)
    else
        $('#subject_select').empty()

添加“警报选项”产生“未定义”。我需要帮助的一行是:

 options = $(subjects).filter("option[text^='#{keyword}']").html()

处理两个相关的模型时,这是一项简单的任务。在我的情况下,它们没有关联(这就是我使用静态关键字的原因)。

1 个答案:

答案 0 :(得分:3)

编辑 -

这是一个工作小提琴:http://jsfiddle.net/WZYzd/

您遇到了一些问题,其中最大的问题是option元素没有text属性,因此我更改了过滤器:

options = $(subjects).filter(function() {
    return $(this).text().indexOf(keyword) == 0;
});