0

$selectmenu が割り当てられた selectmenu の次のオプションに移動するボタンを作成しようとしています。

$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');

標準の HTML 選択メニューでは機能しますが、jquery $selectmenu が割り当てられている場合は機能しません。

$('select#toolMenu').selectmenu({
    style:'popup', 
    width: 600,
    menuWidth: 600,
    maxHeight: 400,
    format: addressFormatting,
    change: function () { 
        var val = this.value;
        window.location=val;
    } 
});

selectmenuを制御する方法はありますか?

助けていただければ幸いです...

ダン。

4

4 に答える 4

3

プラグインvalue方式を使用する必要があります。

$("select#toolMenu").selectmenu("value", theIndex);

theIndexオプションのゼロベースのインデックスはどこですか

<option>実行時に選択内のリストを変更する場合は、プラグインを完全に破棄して最初から作成する必要があることに注意してください。たとえば、次の関数は ajax 呼び出しを実行して、select 要素のオプション リストを更新します。

$.ajax({
    type: "post",
    dataType: "json",
    url: 'your_url',
    async: false,
    data: {},
    beforeSend: function() {
        $("#mySelect").selectmenu('disable'); 
    },
    success: function (response) {
        $('#mySelect').html('');
        $.each(response, function (i, data) {
            $('#mySelect').append($("<option></option>").attr("value", data.Value).text(data.Text));
        });
        $('#mySelect').selectmenu('destroy').selectmenu();
    }
});
于 2010-11-16T11:57:10.023 に答える
0

選択したオプションを変更した後、プラグイン関数をもう一度呼び出す必要があります。

プラグインは、ドロップダウンに基づいていくつかのスタイル付き HTML 要素を追加します。レンダリングされると、独自のコードを使用して手動で変更するのは困難です。変更されたドロップダウンで関数を再度呼び出す必要がある場合があります。

于 2010-11-16T11:55:10.317 に答える
0

メニューはオプションごとに新しいページをロードすることを意図していたので、元のオプション val() を取得して、メニューが dom で自動的に再起動する次のページに移動しました。

        jqueryMenu()

        $('a.previous').click(function(){

            val = $('option:selected', 'select').previous('option').val();
            window.location=val;

        })

        $('a.next').click(function(){

            val = $('option:selected', 'select').next('option').val();
            window.location=val;

        })
于 2010-11-16T12:04:22.957 に答える
0

@Lorenzoは部分的に正しいです。value または index メソッドを使用して、現在アクティブなオプションを変更できます。

選択 (オプションの追加、変更、削除) を変更する場合、reinit selectmenu を破棄する必要はありませんが、既に初期化された要素に対して myElement.selectmenu() を再度使用します。

詳細については、wiki を参照してください: https://github.com/fnagel/jquery-ui/wiki/Selectmenu

于 2012-09-04T10:44:04.483 に答える