这是我的jsp源
<select id="preferAgeStart" name="preferAgeStart">
<c:forEach begin="20" end="35" step="1" var="age">
<option value=${age }>${age }</option>
</c:forEach>
</select>
我想添加select tag id =&#39; preferAgeEnd&#39;使用&#39; preferAgeStart&#39;的值作为c的起始值:forEach。 这是我的代码。
$("#preferAgeStart").change(function(){
var preferAgeStartStr = $(this).val();
var preferAgeStart = parseInt(preferAgeStartStr);
$('#preferAgeEnd').remove();
$("#preferAgeStart").after(
"<select id='preferAgeEnd' name='preferAgeEnd'>"
+ "<c:forEach begin='"
+ preferAgeStart
+ "' end='35' step='1' var='age'>"
+ "<option value=${age }>${age }</option>"
+ "</c:forEach>"
+ "</select>");
但它有NumberForamtException
java.lang.NumberFormatException: For input string: ""
+ preferAgeStart
+ ""
如何使用preferAgeStart
作为int值?
答案 0 :(得分:0)
考虑事情的执行时间。 JSTL在服务器上执行,结果发送到浏览器。 JQuery由浏览器执行。
因此,在将页面发送到浏览器之前,SERVER正在尝试执行以下操作:
<c:forEach begin='"
+ preferAgeStart
+ "' end='35' step='1' var='age'>
服务器不知道preferAgeStart是什么,因为它不是一个变量,直到 页面加载后用户更改了选择值,因此错误。
对于您的代码,您应该执行客户端循环,而不是服务器端循环。
即
for(var i=0; i<5; i++){
//do something
}