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