【问题标题】:How to Add options to <SELECT>, in IE Windows Mobile 5如何在 IE Windows Mobile 5 中向 <SELECT> 添加选项
【发布时间】:2023-03-11 19:08:01
【问题描述】:

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

因为这是 IE Windows Mobile 5,涉及 getElementID 的大多数解决方案都不起作用,所以我不得不求助于更普通的 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();

}

有什么想法吗?

【问题讨论】:

    标签: javascript windows-mobile ie-mobile


    【解决方案1】:

    有 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 错误

    【讨论】:

    • 遗憾的是,没有工作,最接近的是://option 2 mySelectObject.innerHTML = '';它在下拉列表中添加了一个空白,所有其他选项都引发了异常。我现在很幸运,认为像添加到下拉列表这样简单的事情是行不通的..
    • 有传言说,如果传递一个虚拟包装节点,innerHTML(选项#2)将起作用......例如mySelectObject.innerHTML = '
      ';但我没有可以测试的设备。
    【解决方案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
      }
    }
    

    谢谢大家

    【讨论】:

      【解决方案3】:

      来自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 对象有效,只知道它有效。

      【讨论】:

        猜你喜欢
        • 2019-01-02
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        • 1970-01-01
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多