5

jQuery モバイルで選択メニューを動的に設定する際に問題が発生しています。

オプションを追加すると、初期値が表示されず、空白行が表示されます。値はそこにあり、メニューをクリックすると選択できますが、それは単なる初期ビューです。メニューをページにハードコードするとうまくいきます。最初は空のドロップダウンがあり、追加するときにビューが更新することを認識していないため、空の行が表示され続けるためだと思います。追加した後にビューを強制的に更新する方法はありますか? 私は試しまし.trigger("create")たが、これは何もしません。

これが私が意味することを示す画面です。「場所」ドロップダウンは私が問題を抱えているものであり、「テスト」ドロップダウンは私が達成しようとしていることを示すためにハードコーディングしたものです。

ここに画像の説明を入力

HTMLは次のとおりです。

<label for="location" class="select">Location</label>
<select name="location" id="location"></select>
<label for="test" class="select">Test DD</label>
<select name="test" id="test">
  <option value="test1">Test 1</option>
  <option value="test2">Test 2</option>
  <option value="test3">Test 3</option>
  <option value="test4">Test 4</option>
  <option value="test5">Test 5</option>
</select>

そして、ここにJSがあります:

tx.executeSql('SELECT * FROM locations WHERE lDeleted != 1',
  [],
  function(tx,results){
    var len = results.rows.length;
    for (var i=0; i<len; i++){
      $('#location').append('<option value="'+results.rows.item(i).ID+
        '" class="dropDownBlk">'+results.rows.item(i).lTitle+'</option>');
    }
    $('#location').append('<option value="0">Add new location...</option>')
  },
  errorCB
);
4

5 に答える 5

20

これでうまくいきました:

$("#location").trigger("change");
于 2012-07-15T07:29:21.963 に答える
7

後:

$('#location').append('<option value="0">Add new location...</option>');

試す:

$("#location").selectmenu('refresh', true);
于 2012-07-19T11:04:01.297 に答える
0

すべてのオプションをメニューに追加した後:

$("#location option[value='test1']").attr("selected", "selected");

または、最初の値を選択するだけの場合:

$("#location option:first").attr("selected", "selected");
于 2012-07-15T07:18:53.003 に答える
0

これは私のために働く

$(document).on('change', "body", function(){
    $( ".ui-selectmenu" ).selectmenu();
});

機能しない場合は、ボディ変更イベントを手動でトリガーします。

$('body').trigger('change');
于 2016-04-25T20:55:38.970 に答える