Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript禁用jsp页面中的文本框_Javascript_Jsp - Fatal编程技术网

javascript禁用jsp页面中的文本框

javascript禁用jsp页面中的文本框,javascript,jsp,Javascript,Jsp,我的jsp页面中有这三个字段 <td> <html:text property="my_dto.number1" </html:text> </td> <td> <html:text property="my_dto.number2" </html:text> </td> <td>

我的jsp页面中有这三个字段

    <td>
           <html:text property="my_dto.number1" </html:text>
   </td>
    <td>
           <html:text property="my_dto.number2" </html:text> 
    </td>

    <td>                                    
          <input type ="checkbox" id ='isTrue' /> 
    </td>


事实:JSP在Web服务器上运行,生成HTML/CSS/JS并将其发送给webbrowser。JS在webbrowser上运行,只看到HTMLDOM树,而不看到任何Java/JSP行。右键单击webbrowser中的页面,选择查看资源并查看您自己。你明白吗?好的,然后继续

在生成的HTML源代码中,您应该看到一些HTML
元素代替了Struts的
组件。我不使用Struts,但是一个像样的MVC框架也会为这些HTML元素分配一个
id
。如果没有完成,或者ID值是随机生成的,您希望自己设置一个固定的ID。根据,您需要设置
styleId
属性:

最后,编写一个JS函数,单击复选框即可执行该函数,并相应地修改这些文本元素的
disabled
属性。安迪已经给出了一些提示。以下是JSP的基本外观:

<html:text property="my_dto.number1" styleId="number1" />
<html:text property="my_dto.number2" styleId="number2" /> 
<input type="checkbox" id="isTrue" onclick="disableNumbers(this)" /> 

<script>
    function disableNumbers(checkbox) {
        var number1 = document.getElementById("number1");
        var number2 = document.getElementById("number2");
        number1.disabled = number2.disabled = checkbox.checked;
    }
</script>

函数禁用编号(复选框){
var number1=document.getElementById(“number1”);
var number2=document.getElementById(“number2”);
number1.disabled=number2.disabled=checkbox.checked;
}

事实:JSP在Web服务器上运行,生成HTML/CSS/JS并发送给webbrowser。JS在webbrowser上运行,只看到HTMLDOM树,而不看到任何Java/JSP行。右键单击webbrowser中的页面,选择查看资源并查看您自己。你明白吗?好的,然后继续

在生成的HTML源代码中,您应该看到一些HTML
元素代替了Struts的
组件。我不使用Struts,但是一个像样的MVC框架也会为这些HTML元素分配一个
id
。如果没有完成,或者ID值是随机生成的,您希望自己设置一个固定的ID。根据,您需要设置
styleId
属性:

最后,编写一个JS函数,单击复选框即可执行该函数,并相应地修改这些文本元素的
disabled
属性。安迪已经给出了一些提示。以下是JSP的基本外观:

<html:text property="my_dto.number1" styleId="number1" />
<html:text property="my_dto.number2" styleId="number2" /> 
<input type="checkbox" id="isTrue" onclick="disableNumbers(this)" /> 

<script>
    function disableNumbers(checkbox) {
        var number1 = document.getElementById("number1");
        var number2 = document.getElementById("number2");
        number1.disabled = number2.disabled = checkbox.checked;
    }
</script>

函数禁用编号(复选框){
var number1=document.getElementById(“number1”);
var number2=document.getElementById(“number2”);
number1.disabled=number2.disabled=checkbox.checked;
}

我认为onchange更合适,如果你聚焦复选框并按空格键,onclick不会启动。我不记得onchange是在之前还是之后触发的,所以可能还需要0毫秒的超时。@Andy:会的:)。哦,onchange还有一个缺点:只有当checkbox失去焦点时它才会被触发。嗯,我在任何地方都找不到记录在案的。。。当焦点丢失时触发更改事件是正确的(但并非所有浏览器都是如此,只有在使用键盘时才是如此)。我想你已经证明了点击事件在这种情况下更有效,+1:-)@Andy:不仅仅是在这种情况下。无论何时,只要您想勾选复选框/单选按钮的更改,请始终使用它。这些元素上的
onchange
不会像您直观预期的那样运行。我认为onchange更合适,如果您选中复选框并按空格键,onclick不会触发。我不记得onchange是在之前还是之后触发的,所以可能还需要0毫秒的超时。@Andy:会的:)。哦,onchange还有一个缺点:只有当checkbox失去焦点时它才会被触发。嗯,我在任何地方都找不到记录在案的。。。当焦点丢失时触发更改事件是正确的(但并非所有浏览器都是如此,只有在使用键盘时才是如此)。我想你已经证明了点击事件在这种情况下更有效,+1:-)@Andy:不仅仅是在这种情况下。无论何时,只要您想勾选复选框/单选按钮的更改,请始终使用它。这些元素上的
onchange
将不会像您直观预期的那样运行。