我的 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>
现在我想如果 isTrue 被选中,两个文本框将被禁用。怎么办?
最佳答案
事实:JSP 在网络服务器上运行,生成 HTML/CSS/JS 并将其发送到网络浏览器。 JS 在 web 浏览器上运行,只能看到 HTML DOM 树,看不到任何 Java/JSP 行。右键单击网络浏览器中的页面,选择查看源并查看您自己。你懂吗?好的,然后继续。
在生成的 HTML 源中,您应该看到一些 HTML <input type="text">
元素代替 Struts 的 <html:text>
成分。我不使用 Struts,但是一个像样的 MVC 框架会给这些 HTML 元素分配一个 id
以及。如果没有这样做或者ID值是随机生成的,您想自己设置一个固定的ID。根据TLD documentation ,您需要设置styleId
属性:<html:text styleId="someFixedId">
.
最后,编写一个 JS 函数,该函数在单击复选框时执行并修改 disabled
这些文本元素的属性相应。 Andy E已经给出了一些提示。 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>
关于javascript禁用jsp页面中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3361718/