5

我在 jQuery mobile 中动态填充选择菜单时遇到问题。

当我附加选项时,没有显示初始值,我只是得到一个空行。单击菜单时可以选择这些值,但这只是初始视图。当我将菜单硬编码到页面中时,它工作正常。我认为这是因为我最初有一个空的下拉列表,它应该按原样显示,并且在附加时,视图不知道要更新,所以一直显示一个空行。无论如何,我可以在附加后强制更新视图吗?我试过.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 回答
0

我使用了它,它对我有用:

$.each(AllTxnDAT_PRV, function(index, item) {

        var DocCode =  item.DocCode;
        var DocName =  item.DocName;        
        htmlDOC += '<option value="' + DocCode + '">' + DocName + '</option>';

    });         

$('#DocType > option').remove();
$('#DocType').append($(htmlDOC));   
$('#DocType').selectmenu();
$('#DocType').selectmenu('refresh', true);
于 2017-07-28T17:27:35.180 回答