2

我有一个带有select元素的 JQM 页面:

<select class="state" name="user.state" data-role="select"><option value="">state</option></select>

我试图动态添加选项:

$.each(data['states'], function(index, state) {
    $('<option value="'+state+'">'+state+'</option>').appendTo($('#update-profile-page .state'));
});

但它没有按预期工作。

截屏:

在此处输入图像描述

问题是默认或选定选项的值包含所有状态。

4

2 回答 2

8

我的 HTML 代码:

<div data-role="page">
    <div data-role="header">
        <h1>My Title</h1>
    </div><!-- /header -->
    <div data-role="content">   
        <p>Hello world</p>      
        <select class="state" name="user.state" data-role="select">
            <option value="asfsafd">option1</option>
            <option value="asfsafd">option2</option>
            <option value="asfsafd">option3</option>
        </select>
    </div><!-- /content -->
    <a data-role="button" id="test">click</a>   
</div><!-- /page -->

JS代码

<script>
    $("#test").bind('click', function(){
        var select = $('select.state');
        $.each(["option4", "option5", "option6" , "option7"], function(index, state) {              
            var optTempl = '<option value="' +state+ '">'+state+'</option>';            
            select.append(optTempl)
        });
        var option4 = $($("option", select).get(4));
        option4.attr('selected', 'selected');
        select.selectmenu();
        select.selectmenu('refresh', true);
    })
</script>

我已经修改了您的代码以进行解释。我添加了一个按钮,并单击它。当您单击 i 动态附加一些随机值时,将所选选项更改为动态添加的选项之一。然后重新初始化选择菜单,然后刷新菜单。

脚本的最后两行是答案。

于 2012-12-13T05:52:03.010 回答
0

我希望这个功能有所帮助。

setSelect("typeBusiness",row["region"]);

function setSelect(idControl,newValue){
    var select = $("#"+idControl);
    var optsLength = $("#"+idControl+" > option").length;
    var optTempl = "<option value='"+newValue+"'>"+newValue+"</option>";            
    select.append(optTempl);    
    var newOption= $($("option", select).get(optsLength));
    newOption.attr("selected", "selected");
    select.selectmenu();
    select.selectmenu("refresh", true);
}
于 2018-12-26T07:46:08.657 回答