【发布时间】:2011-12-01 08:08:19
【问题描述】:
我有一种情况,我需要以编程方式在选择中选择一个选项。我似乎找不到答案,我的大脑变得糊涂了……这就是我一直在尝试的(以及其他各种变体)。
$("#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();
};
这是 HTML sn-p,其中 location_list 被插入到 span 标签中...
<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>
【问题讨论】:
-
仅供参考,
.attr()对 properties 来说是件坏事。如果您想以编程方式选择某些内容,最好使用.prop('selected', true_or_false)。这同样适用于复选框及其checked属性。不过不管怎样,暗影巫师的解决方案要好得多。 -
响应文本可能不等于任何选项的值。拥有
alert(xmlhttp.responseText)并亲自查看。 -
嗯......你说得对......出于某种原因,我的 PHP 正在回显一个空字符串......(我猜这是另一个问题)。但是,即使我只是将数字 3 硬编码到 .val('3') 中...与其中一个位置匹配,它仍然是不行的...这让我发疯了,现在是凌晨 3:30我累了! ;) 非常感谢!
-
请在回复评论时使用
@,例如@Shadow会通知我.. 我现在偶然看到这个。无论如何,.val("3")将选择 value 为 3 的任何选项,即<option value="3">some text here</option>,因此populate_loc_list的邮政编码可能会更好。 -
@Shadow 我发现了我的问题!! #location_list 从未真正创建,除非是动态创建的……所以当您在浏览器中查看代码时,它甚至都不存在!它的 html 代码,即......所以 $("#location_list").val(xmlhttp.responseText) 不起作用,因为根据我的 jQuery 代码...... #location_list 不存在......哈!在 ajax 调用中创建的整个 html 代码被插入到 标记中...