3

私はどこでも郵便番号を私のWebプロジェクトと統合しています。郡/州のフィールドにドロップドロップを使用しています。郵便番号はどこでも郡の名前を返します。名前しかない場合、選択したインデックスを変更できますか?(データベースフィールドに関連する値フィールドに数値を使用しています)。

私は次のことを試しました:

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

ここにドロップダウンコードのhtmlを含めようとしましたが、何らかの理由で正しく機能させることができません。

ただし、もちろん、これにより、すでに選択されているドロップダウン内のアイテムのテキストフィールドが変更されるだけです。

データベースにクエリを実行して、郡に割り当てたIDを見つけることはできますが、別の方法があるかどうかはわかりません。

4

3 に答える 3

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");
于 2012-04-13T11:47:58.490 に答える
2

一致するまでオプションをループします。

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

デモ。

于 2012-04-13T11:44:35.247 に答える
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>
于 2012-04-13T12:12:10.727 に答える