javascript在jsp页面中禁用文本框

时间:2010-07-29 10:56:43

标签: javascript jsp

我在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,将禁用两个文本框。怎么做?

1 个答案:

答案 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>