1

プロパティのタイプ(家、フラットなど)に応じて要素の選択オプションを設定するためにjavascriptを使用するフォームがあります。document.myForm.priceSelect.optionsを使用してリストにアクセスしているときに機能しています。

名前ではなくIDでアクセスしたい。フォームを送信するときにリストの名前によって実行する関数が決まるように、オプションとともに名前も設定したいので。説明するためのいくつかのコード:

 if(prop_type == 'flat') {
            document.getElementById('priceRange').setAttribute('name', 'flatRange');
            .....

ここで、priceRangeという選択リストの名前を変更します。以下に示すように、名前の代わりにIDを使用してオプションを変更するにはどうすればよいですか。

document.searchForm.priceRange.options[1]=new Option("10000 - 20000", "10000 - 20000");

前もって感謝します...

アップデート:

変更後:(機能しない)

 if(prop_type == 'flat') {
            document.getElementById('priceRange').setAttribute('name', 'flatRange');
            document.getElementById('priceRange').options.length=0;
            document.getElementById('priceRange').options[0]=new Option("", "");
            document.getElementById('priceRange').options[1]=new Option("10000 - 20000", "10000 - 20000");
4

2 に答える 2

1

単に使用する

document.getElementById(yourId).options[1]=new Option("10000 - 20000", "10000 - 20000");
于 2012-11-09T14:58:39.657 に答える
0

dystroy のメソッドが機能するはずです - このフィドルはこちらを参照してください

別の方法は、次のように、オプション作成用のラッパー メソッドを作成することです。

function createOption(objSelect, optText, optValue){
  var objOption = document.createElement("option");
  objOption.text = optText;
  objOption.value = optValue;

  if(document.all && !window.opera){
    objSelect.add(objOption);
  }
  else
  {
    objSelect.add(objOption, null);
  };
}

次に、選択にオプションを追加できます。

var priceRange=document.getElementById('priceRange');
createOption(priceRange, "10000 - 20000", "lowball");

ここでラッパーメソッドのフィドル

于 2012-11-09T15:47:50.447 に答える