2012-04-13 82 views
3

我将Postcode与我的web项目集成在一起。我正在使用县/国家/地区字段的下拉菜单。任何地方的邮政编码都会返回县的名称。当我只有名字时,我可以更改选定的索引吗? (我正在使用与数据库字段相关的值字段的数字)。如何更改所选索引当我只有名称?

我试过如下:

var f = document.getElementById("state_dropdown"); 
f.options.[f.selectedIndex].text = response[0].County; 

我一直在努力,包括下拉这里代码HTML,但我不能让它出于某种原因正常工作。

但是,当然这只是改变了已经选择的下拉菜单中的项目的文本字段。

我可以查询数据库,找出我已经分配了哪个ID,但是如果有另一种方法,我宁愿不要。

+0

不是100%肯定我得到你想要的。通过只改变选定的索引名称,你是否意味着选项标签的内容(可见的字符串选项)? – GillesC 2012-04-13 11:41:11

回答

2

环比选项,直到你有一个匹配:

for (var i = 0; i < f.options.length; i++) { 
    if (f.options[i].text == response[0].Country) { 
     f.options.selectedIndex = i; 
     break; 
    } 
} 

Demo.

2

我会做一个函数,遍历标签:

参见:http://jsfiddle.net/Y3kYH/

<select id="country" name="countryselect" size="1"> 
<option value="1230">A</option> 
<option value="1010">B</option> 
<option value="1213">C</option> 
<option value="1013">D</option> 
</select>​ 

JavaScript

function selectElementByName(id, name) { 
    f = document.getElementById(id); 
    for(i=0;i<f.options.length;i++){ 
     if(f.options[i].label == name){ 
      f.options.selectedIndex = i; 
      break; 
     } 
    } 
} 
selectElementByName("country","B"); 
1

只是对其他答案的变化:

<script type="text/javascript"> 

function setValue(el, value) { 
    var sel = el.form.sel0; 
    var i = sel.options.length; 
    while (i--) { 
    sel.options[i].selected = sel.options[i].text == value; 
    } 
} 

</script> 
<form> 
<select name="sel0"> 
    <option value="0" selected>China 
    <option value="1">Russia 
</select> 
<button type="button" onclick="setValue(this, 'Russia');">Set to Russia</button> 
<input type="reset"> 
</form> 
相关问题