如何在IE Windows Mobile 5 </select>中为<select>添加选项

时间:2009-05-22 16:12:21

标签: javascript windows-mobile ie-mobile

尝试以编程方式将选项添加到IE Windows Mobile中的SELECT下拉列表中。

因为这是IE Windows Mobile 5,大多数涉及getElementID的解决方案都不起作用,所以我不得不求助于更简单的vanilla HTML / Java脚本,下面的示例在IE 6和FF中工作正常,但是失败了“对象”不支持此属性或方法“在Windows Mobile 5

function insertBarcodes()
{
val = document.form1.barcode.value ;
i = document.form1.blist.length;
myNewOption = new Option(val , val ); 
document.form1.blist.options[document.form1.blist.length] =myNewOption ; 
 }
 updateCount();

}

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

设置选项有4种方式(我知道)...(希望其中一种方法适合你(让我们知道哪些))

//option 1
var newOpt = document.createElement('option');
newOpt.innerText = 'Hello';
mySelectObject.appendChild(newOpt);

//option 2
mySelectObject.innerHTML = '<option>Hello</option>';
//KNOWN TO FAIL IN IE6,7,8 (see url below)

//option 3
mySelectObject.outerHTML = '<select><option>Hello</option></select>'; //IE Only

//option 4
var newOpt = new Option('Hello','Hello');
mySelectObject.options[index] = newOpt;

设置.innerHTML

的IE错误

答案 1 :(得分:2)

在这里找到答案:

首先我在这里查看官方参考资料来源: http://msdn.microsoft.com/en-us/library/bb159677.aspx

我注意到selectObj有一个add方法,所以我尝试了它并且它有效..

这是工作代码,

function AddSelectOption(selectObj, text, value, isSelected){
  if(selectObj != null && selectObj.options != null){
    var newOpt = new Option('Hello','Hello'); //create the option object
    selectObj.add(newOpt); //it's the .add(option) method
  }
}

感谢所有

答案 2 :(得分:1)

来自steven harman's blog

function AddSelectOption(selectObj, text, value, isSelected) 
{
    if (selectObj != null && selectObj.options != null)
    {
        selectObj.options[selectObj.options.length] = 
            new Option(text, value, false, isSelected);
    }
}

所以你的代码会变成;

function insertBarcodes()
{
    val = document.form1.barcode.value ;
    AddSelectOption( document.form1.blist, val, val, false );
}

该网站声明作者遇到了您提到的确切问题。作者承认,他不知道为什么一个四参数的Option对象可以正常工作。