【发布时间】:2016-09-17 22:42:03
【问题描述】:
我试图让用户决定他们想要添加多少笔记。如果用户决定出现 0,则出现 0 输入框,如果 1 则出现 1,等等。我尝试使用以下代码执行此操作,使用 and 。它不工作。我需要先让用户提交他们的选择吗
<td><select name="numberNotes" id="numberNotes">
<option value='0'>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select></td>
<c:set var="userChoice" scope="session" value="${numberNotes}"/>
<c:if test="${userChoice == '0'}">
</c:if>
<c:if test="${userChoice == '1'}">
<td>Note 1: </td><td><input type="text" name="notes" /></td>
</c:if>
<c:if test="${userChoice == '2'}">
<td>Note 1: </td><td><input type="text" name="notes" /></td>
<td>Note 2: </td><td><input type="text" name="notes" /></td>
</c:if>
<c:if test="${userChoice == '3'}">
<td>Note 1: </td><td><input type="text" name="notes" /></td>
<td>Note 2: </td><td><input type="text" name="notes" /></td>
<td>Note 3: </td><td><input type="text" name="notes" /></td>
</c:if>
<c:if test="${userChoice == '4'}">
<td>Note 1: </td><td><input type="text" name="notes" /></td>
<td>Note 2: </td><td><input type="text" name="notes" /></td>
<td>Note 3: </td><td><input type="text" name="notes" /></td>
<td>Note 4: </td><td><input type="text" name="notes" /></td>
</c:if>
<c:if test="${userChoice == '5'}">
<td>Note 1: </td><td><input type="text" name="notes" /></td>
<td>Note 2: </td><td><input type="text" name="notes" /></td>
<td>Note 3: </td><td><input type="text" name="notes" /></td>
<td>Note 4: </td><td><input type="text" name="notes" /></td>
<td>Note 5: </td><td><input type="text" name="notes" /></td>
</c:if>
【问题讨论】:
-
JSTL 标签在服务器上运行,之前 任何 HTML 被发送到浏览器。用户在组合框中选择值发生在浏览器上, HTML 已从服务器发送。如果要根据用户选择进行动态更改,则必须用 JavaScript 编写,在浏览器中运行。不能是服务器上运行的JSTL。
-
@Andreas 说过,我也会。 JSP 就像“PHP”,它在服务器上运行,客户端永远不会收到任何 JSP 语言的东西。如果您想要客户端的动态行为,则需要使用 Javascript。