4

我的页面上有一个选择框,它在除 IE 之外的所有浏览器中都运行良好。我已经在 8 和 9 上进行了测试,我也遇到了同样的问题。当我单击一个选项时, .change() 事件会触发,就像它应该的那样,但是选项不会消失,直到我再次单击(这不会触发单击事件,奇怪的是),或者单击选择之外盒子。这对我来说没问题,因为我使用的是 chrome,但我的大部分用户都使用 IE8。

这是 .change() 函数:

$('#configEquipDesc').change(function () {
            alert($(this).val());
            if ($(this).val() != 'unselected') {
                ajaxGetConfig($(this).val());
            }
        });

这是选择的 HTML。

<select name="configEquipDesc" id="configEquipDesc" data-native-menu="false" data-inline="true" class="configMenuEquip">
     <option value="unselected" data-placeholder="true">Inspection</option>
</select>

使用 ajax 添加了更多选项,并且一切正常。

4

1 回答 1

0

如果这是一个动态创建的选择框,我怀疑它是,你需要使用延迟。尝试将您的 jQuery 更改为:

$('body').on('change','#configEquipDesc', function () {
    ajaxGetConfig($('option:selected', this).val());
});

看看是否能解决你的问题。

编辑- 这是selected option你试图获得的价值,对吗?不是选择语句本身。所以,这里有一个小技巧,可以只抓取选定的选项并将其发送到您的ajaxGetConfig()函数!

于 2013-09-26T17:17:51.690 回答