我遇到需要以编程方式选择select中的选项的情况。我似乎无法找到答案,我的大脑正在变成糊状......这就是我一直在尝试的(以及其他各种变化)。
$("#location_list option[value='"+LID+"']").attr("selected", "selected");
任何帮助都会非常感激!
谢谢!
这是周围的代码......
function loc_commitData(location_data, update_loc)
{
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
populate_loc_list('<?php echo $CompanyID; ?>', $("input:radio[name='locationstatus']:checked").val());
bind_events_to_location_list();
$("#location_list").val(xmlhttp.responseText);
}
}
xmlhttp.open("GET", "includes/save_location_data.php?" + location_data, true);
xmlhttp.send();
};
以下是在片段代码中插入location_list的HTML代码段...
<fieldset style="margin-right: 15px;">
<legend>Locations</legend>
<span id="location_list_span"> THIS IS WHERE location_list GETS INSERTED ON THE FLY AFTER THE PAGE IS CREATED BY PHP</span>
</fieldset>
答案 0 :(得分:10)
答案 1 :(得分:2)
使用jquery 1.9.1和jquery mobile 1.3.0时,您必须添加一个刷新语句:
$("#location_list").val(LID);
$("#location_list").selectmenu("refresh");
答案 2 :(得分:0)
$("#location_list").selectedIndex = index of the obj
;
编辑:
实际上,我在我的一个旧脚本中有这个,是的,它确实可以提供正确的索引。然而,既然我们正在谈论规范的方式,我已经跨越了类似的东西:select.children("option").each(function () {
if ($(this).text().match(matcher)) {
this.selected = valid = true;
}
});
为什么我应该使用父选择而不是使用选项集合?
答案 3 :(得分:0)
在阅读您对Shadow Wizard的评论后(建议使用正确的解决方案),您可能会遇到两个问题之一:
计时问题 - 你有这样的代码:
var LID = $("#location_list").val();
$.ajax(/*go get items for new select and populate it on success*/);
$("#location_list").val(LID); //this will happen before the ajax return and populate the list
您没有在新列表中返回值,或者您尝试通过文本设置它的值
哦,忘了将解决方案添加到1 - 只需在重新填充列表后选择Ajax调用成功回调中的旧值
答案 4 :(得分:0)
我使用了这段代码,它对我有用
$("#selectID option")[index].selected = true;