IE中的javascript问题 - 禁用字段

时间:2014-03-13 23:39:20

标签: javascript html-table

我是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>

2 个答案:

答案 0 :(得分:0)

替换

var com3 = document.forms[0].elements['form1:IncommingOrOutcomming'];

使用

var com3 = document.getElementById('IncommingOrOutcomming');

答案 1 :(得分:0)

Chrome和IE有不同的JavaScript引擎, 由于您在IE中只有问题,您可以尝试使用代码并按F12,然后查看控制台选项卡中是否有任何错误,那么您可以在代码中看到问题。  我认为调试的能力比解决方案本身更重要。 希望这有帮助!