2

私は Wicket でアプリケーションに取り組んでいます。私のすべてのドロップダウンには、デフォルトのオプション「1つを選択してください」があります。ユーザーが値を変更すると、一部の JavaScript が「1 つ選択」オプションを削除します。

私のドロップダウンの一部には、ajax onchange イベント (Wicket onchange 動作) もあります。

私の問題は、Internet Explorer (7 および 8) で「1 つ選択」のデフォルト オプションを削除すると、onchange イベントがトリガーされることです。

したがって、ajax リスナーを使用したドロップダウンはすべて 2 回呼び出されます。最初の ajax 呼び出しがフレームワークによって起動され、次に javascript がオプションを削除して、2 番目の 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