获取选择框选项的值而不使用.change()

时间:2013-09-29 10:17:02

标签: javascript jquery ajax

我有一个选择框如下:

<select id="select_search">
    <option value="search_contact">Contact</option>
    <option value="search_customer">Customer</option>
    <option value="search_employee">Employee</option>
    <option value="search_servEmp">Service Employee</option>
    <option value="search_servOrg">Service Org</option>
</select>

上述选择框是搜索表单的一部分。当您提交表单时,使用ajax请求将结果异步返回到同一页面。

在我的结果页面(异步加载的页面)上,我有一组其他选择框作为结果的过滤器。

<select id="select_customer">
    <option value="">something</option>
</select>
<select id="select_contact">
    <option value="">something else</option>
</select>
etc....

如何获取原始选择框(#select_search)的值以显示/隐藏通过ajax加载的相应选择框。 (例如,如果search_contact是选定的选项,则只显示id =&#34的选择框; search_contact&#34;)

我熟悉的唯一方法是在更改时获取选择框的值,但在这种情况下,直到更改发生后才会加载受影响的元素。

3 个答案:

答案 0 :(得分:0)

如果你正在使用JQuery $(#select_search).val()应该这样做。

答案 1 :(得分:0)

制作$ .live的新方法

$(document).on('change', '#select_search', function() {
 // change
});

答案 2 :(得分:0)

您可以在jsFiddle中尝试此操作。

$(function () {
    $(document).on('change', '#select_search', function () {
        $('select:not(#select_search)').addClass('invisble');
        var selectSearchVal = $(this).find('option:selected').val();
        $('#select_' + selectSearchVal.replace('search_', '')).removeClass('invisble');
    });
});