銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

フォームのリセット時にjQuery UIのselectmenuの表示もちゃんと更新する

jQuery UIselectmenu は、フォームがリセットされても表示が元に戻らないみたいですね。

以下のようにして解決。

$("input[type='reset']").button()
    .click(function() {
    window.setTimeout(function() {
        $("[name='sel']")
            .selectmenu('refresh');
    }, 0);
});

フォームのリセットボタンにclickイベントをbindするのですが、このイベント、フォームがリセットされる前に発生しますから、それでは全然意味が無い。 なので、window.setTimeoutでリセット後に遅延させて、 $(...).selectmenu('refresh') すればよいってことらしい。


setTimeoutを使うところまでは自力ですぐに思いついたけど、"refresh"はググってゲット。 こういう部分でちょっとjQuery-UIには抵抗が、、、っていうか、公式サイトの情報がわかりにくいのよね。ソース読めってことかもしれんが。