javascript禁用jsp页面中的文本框
我的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>
<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
将不会像您直观预期的那样运行。