【发布时间】:2012-04-02 04:39:42
【问题描述】:
我需要更改下拉选择中的选定值。
默认情况下,它在 VIC 上被选中,但是当我点击新南威尔士州的一个地址时,我想让下拉菜单在下拉菜单中选择新南威尔士州,唯一的问题是值是 1-7,而不是州名.
我尝试了以下
$("select").val('NSW').change();
还有更多,包括触发器等等
【问题讨论】:
我需要更改下拉选择中的选定值。
默认情况下,它在 VIC 上被选中,但是当我点击新南威尔士州的一个地址时,我想让下拉菜单在下拉菜单中选择新南威尔士州,唯一的问题是值是 1-7,而不是州名.
我尝试了以下
$("select").val('NSW').change();
还有更多,包括触发器等等
【问题讨论】:
使用此功能。传递两个参数,第一个组合名称和第二个要选择的值。当你点击 NSW 地址时调用这个函数
function setSelectedIndexByTextValue(comboName, comboValue) {
var tComboName = document.getElementById(comboName);
for (i = 0; i < tComboName.options.length; i++) {
if (parseInt(tComboName.options[i].text) == comboValue) {
tComboName.options[i].selected = true;
break;
}
}
}
【讨论】:
好的,我假设您的 HTML 如下所示:
Please select a state:
<ul>
<li>New York</li>
<li>Pennsylvania</li>
<li>Ohio</li>
<li>California</li>
<li>Washington</li>
<li>Alaska</li>
<li>Hawaii</li>
</ul>
<select name="state">
<option value="1">New York</option>
<option value="2">Pennsylvania</option>
<option value="3">Ohio</option>
<option value="4">California</option>
<option value="5">Washington</option>
<option value="6">Alaska</option>
<option value="7">Hawaii</option>
</select>
点击加州li时,要选择第四个选项吗?很简单:只需创建一个将索引映射到名称的简单数组:
var map = [null, "New York", "Pennsylvania", "Ohio", "California",
"Washington", "Alaska", "Hawaii"];
然后,使用$.inArray函数查找对应某个状态的索引:
var index = $.inArray($(this).html(), map);
然后,将 select 设置为带有您刚刚找到的索引的选项:
$("select").val(index);
【讨论】: