2

我正在 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");
4

0 回答 0