2015-09-15 38 views
2

工作,我有两个选择下拉menus.When我从第一个下拉列表中选择,然后在第二个下拉条目应该改变。此功能在浏览器中正常工作。但不是在HTA(HTML应用程序)HTA和Javascript兼容性。 JavaScript的不HTA

我的代码

<html> 
<head> 
<script language="javascript"> 
function change() 
{ 
    var sel=document.getElementById("second") 
    var val=document.getElementById("first").value 
    if(val=="1") 
    { 
     sel.innerHTML="<option>a</option><option>b</option> <option>c</option>" 
    } 
    else if(val=="2") 
    { 
      sel.innerHTML="<option>x</option><option>y</option><option>z</option>" 
    } 
} 

</script> 
</head> 
<body> 
<div> 
    <select id="first" onchange="change()"> 
    <option>1</option> 
    <option>2</option> 
    </select > 

<select id="second"> 
    <option>a</option> 
    <option>b</option> 
    <option>c</option> 
    </select> 
</div> 

回答

1

看起来你正在运行的怪癖模式的应用程序。如果是这样的话,select元素值从不设置。

您对要么使用IE9的文档模式或更高版本(设置HTML5 DTD和<meta http-equiv="x-ua-compatible" content="ie=edge" />例如),或使用selectedIndex属性来获取select元素的值:

var val = sel[sel.selectedIndex].value; 

后者是只有选项,如果你用IE浏览器运行应用程序< 9.

另一个问题是设置innerHTMLselect元素。这不适用于IE < 10.要解决此问题,您需要在脚本中创建所有必需的选项,请参阅select element

+0

我打开与微软HTML应用程序主机HTA – user2095748

+2

是的,我知道,但IE提供JS和mshta.exe渲染引擎。请参阅[HTA中的Javascript版本](http://stackoverflow.com/a/19570684/1169519)了解更多信息。 – Teemu