我有一个表单,我使用javascript根据属性类型(house,flat等)设置select元素选项。当我使用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");
答案 0 :(得分:1)
只需使用
document.getElementById(yourId).options[1]=new Option("10000 - 20000", "10000 - 20000");
答案 1 :(得分:0)
dystroy的方法应该有效 - 请参阅此fiddle here
另一种方法是为选项创建创建一个包装器方法,例如:
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");
提示包装方法here