如何在IE中删除选择选项而不触发onchange事件

时间:2013-02-13 19:51:03

标签: jquery internet-explorer onchange

我正在Wicket的一个应用程序。我的所有下拉菜单都有一个默认选项“选择一个”。 当用户更改该值时,某些javascript会删除“选择一个”选项。

我的一些下拉列表也有ajax onchange事件(Wicket onchange行为)。

我的问题是,使用Internet Explorer(7和8),删除“选择一个”默认选项将触发onchange事件。

所以,我用ajax监听器的所有下拉列表都会被调用两次。首先,框架触发了ajax调用,然后javascript将删除导致第二次onchange事件的选项。

在每个例子的firefox中,我的ajax监听器只被调用一次。删除该选项并不会触发onchange,这是可以的。

javascript代码:

var comboboxes = $("select:not(.emptyOptionEnhanced, .noRemoveEmptyChoice)");
comboboxes.each(function() {
    var combo = $(this);
    var emptyOptions = combo.find("option[value='']");

    if (emptyOptions.length) {
        combo.debug("Enhancing combo box with empty option");
        combo.change(function(e) {
        emptyOptions.debug("Removing empty option").remove();
    });
).addClass("emptyOptionEnhanced");

0 个答案:

没有答案