我是Javascript的初学者,我有一个IE的问题 - 它无法正常工作但在Chrome中这个代码有效。有人能帮助我吗?
在IE 8中,问题在于更改IncommingOrOutcomming和TypeOfMessage,当值为IncommingOrOutcomming = P和TypeOfMessage 10时,字段输入未被禁用。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script>
function DAP() {
var com1 = document.getElementById('form1:Input'); // It represent string input field
var com2 = document.getElementById('form1:TypeOfMessage');
var com3 = document.forms[0].elements['form1:IncommingOrOutcomming'];
if (com2.value == '10' && com3.value == 'P') {
com1.disabled=true;
}
</script>
<table>
<tr>
<td><h:outputText value="#{bundle.txt_zpr}"></h:outputText></td>
<td><h:selectOneRadio id="IncommingOrOutcomming" value="#{Bean.message}"onchange="DAP();" >
<f:selectItem id="item1" itemLabel="#{bundle.txt_prichotzi}" itemValue="P" />
<f:selectItem id="item2" itemLabel="#{bundle.txt_odchozi}" itemValue="O" />
</h:selectOneRadio></td>
</tr>
<tr>
<td><h:outputText value="#{bundle.txt_zprava_typ}"></h:outputText></td>
<td><h:selectOneMenu id="TypeOfMessage" value="#{Bean.typeOfMessage}" onchange="DAP();" >
<f:selectItems value="#{HledejBean.typZpr}" />
</h:selectOneMenu></td>
</tr>
</table>
答案 0 :(得分:0)
替换
var com3 = document.forms[0].elements['form1:IncommingOrOutcomming'];
使用
var com3 = document.getElementById('IncommingOrOutcomming');
答案 1 :(得分:0)
Chrome和IE有不同的JavaScript引擎, 由于您在IE中只有问题,您可以尝试使用代码并按F12,然后查看控制台选项卡中是否有任何错误,那么您可以在代码中看到问题。 我认为调试的能力比解决方案本身更重要。 希望这有帮助!