代码之家  ›  专栏  ›  技术社区  ›  Kiada

IE 8不能正常工作?重设窗体

  •  2
  • Kiada  · 技术社区  · 14 年前

    是的,这在FF和Chrome中是有效的,但由于某些原因在IE8中不起作用。我正在使用单选按钮清除窗体的一部分。。该部分是一个选择框,但我不想让该区域为空,而是希望将其重置为加载页面时的状态。目前IE8只是留给我一个空的小选择框。

    <select id="city_select" disabled="true" name="location_id" onchange="show_search_button();"><option selected>Select your city</option> </select>
    

    Javascript代码:

    document.getElementById('city_select').innerHTML = "<option selected>Select your city</option>";
    

    我也尝试过在javascript中使用location\u id而不是city\u select,但没有效果。。innerText和innerContent也不起作用。。虽然inner.HTML在IE8中适用于早期的函数,但这并不是试图将innerHTML转换为表单。有人知道为什么它在Chrome和FF中工作,而不是IE8吗?有解决办法吗?谢谢您的帮助!

    2 回复  |  直到 14 年前
        1
  •  0
  •   Robusto    14 年前

    试试这个:

    document.getElementById('city_select').options.length = 0;
    

    然后创建一个新选项并将其推送到select的options数组中。这些选项有点棘手,不像其他标记。

    var sel = document.getElementById('city_select').options.length = 0;
    var opt = document.createElement('option');
    opt.value = "Select Your City";
    sel.options.push(opt);
    sel.selectedIndex = 0;
    
        2
  •  0
  •   Community Justin Hirsch    7 年前

    有4种方法可以为select元素指定新选项。有些在某些场景中工作,有些在其他场景中工作。看这里- How to Add options to <SELECT>, in IE Windows Mobile 5

    sel 第一行中的变量已赋值 document.getElementById('city_select').options.length = 0; 而不是简单地按住select元素(供以后在第4行和第5行中使用),然后在下一行中删除选项,如下所示:

    var sel = document.getElementById('city_select');
    sel.options.length = 0;
    

    2) 第四条线 sel.options.push(opt) (或稍后建议) sel.options[0] = opt )抛出 对象不支持此属性或方法 错误。相反,请使用以下命令:

    sel.appendChild(opt);
    

    3) 除了为选项指定值外,还必须指定要显示的文本。你这样做:

    opt.innerText = "Select Your City - displayed";
    

    var sel = document.getElementById('city_select');
    sel.options.length = 0;
    var opt = document.createElement('option');
    opt.value = "Select Your City";
    opt.innerText = "Select Your City - displayed";
    sel.appendChild(opt);
    sel.selectedIndex = 0;