我在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,将禁用两个文本框。怎么做?
答案 0 :(得分:1)
事实:JSP在webserver上运行,生成HTML / CSS / JS并将其发送到webbrowser。 JS在webbrowser上运行,只看到HTML DOM树,而不是任何Java / JSP行。右键单击webbrowser中的页面,选择查看源并查看自己。你懂吗?好的,然后继续。
在生成的HTML源代码中,您应该看到一些HTML <input type="text">
元素代替Struts的<html:text>
组件。我不做Struts,但是一些不错的MVC框架也会将这些HTML元素分配给id
。如果没有完成或者随机生成ID值,您需要自己设置固定ID。根据{{3}},您需要设置styleId
属性:<html:text styleId="someFixedId">
。
最后,编写一个JS函数,单击该复选框后执行该函数,并相应地修改这些文本元素的disabled
属性。安迪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>