2

我有这个选择,我加载了一堆国家。用户选择一个后,他将转到另一个页面,在那里他搜索信息。如果他选择了一个国家,那么他应该默认选择该国家(在另一个选择中,在另一个包含相同国家的页面中)。

<div data-role="fieldcontain">
    <label for="selecionarPaisPreferencia" class="select">Pais</label>
    <select name="selecionarPaisPreferencia" id="SlSelecionarPaisPreferencia"></select>
</div>

在加载页面之前,如何更改选择中的默认选项。

顺便说一句:我已经将他选择的国家的名称存储在一个全局变量中。

我动态加载选项,因为我没有使用数据库,这是为了练习。

for (i = 0; i < countrys.length; i++) {
    $("#SLSelectPaisConsulta").append('<option data-pais="' + countrys[i] + '">' + countrys[i] + '</option>');
    $("#SlSelecionarPaisPreferencia").append('<option data-pais="' + countrys[i] + '">' + countrys[i] + '</option>');
}
4

3 回答 3

1
$('#selecionarPaisPreferencia').val('country_name_value_here');
于 2013-08-06T16:10:49.180 回答
0

如果您有要选择的值,这里还有另一种方法SelectedValue

$("#SlSelecionarPaisPreferencia").find('[value="'+SelectedValue+'"]').attr("selected", true);

为了完整起见,重要的是要注意val()直接使用应该更有效,但val()不适用于多选选择,而此方法将适用于单选或多选。您只需为要选择的每个值调用一次。

于 2013-08-06T16:12:48.397 回答
0

你可以试试:

$("#SlSelecionarPaisPreferencia").val(selectedPais);

或者

$("#SlSelecionarPaisPreferencia")
    .children(':contains('+selectedPais+')').prop('selected',true);

或者:

$("#SlSelecionarPaisPreferencia > option:contains("+selectedPais+")").prop('selected',true);
于 2013-08-06T16:12:50.230 回答