1

我有一个表单,我使用 javascript 根据属性类型(房屋、公寓等)设置选择元素选项。当我使用 document.myForm.priceSelect.options 访问列表时,它现在正在工作。

我想通过 id 而不是 name 访问它。因为我还想设置名称以及选项,以便在提交表单时,列表的名称将确定要执行的函数。一些代码来说明:

 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 回答