我有以下 JSP 代码,用于选择语句提取存储在数据库中的名称列表作为 nameID 和名称。下拉列表显示名称(不是 ID)
<select id="name" name="name" onchange="updateName(value)">
<option/>
<c:forEach items="${nameForm.nameList}" var="val">
<option ${nameForm.name eq val.nameId?'selected':''}
value="<c:out value="${val.nameId}"/>">
<c:out value="${val.name}"/>
</option>
</c:forEach>
</select>
我希望 updateName 函数检索所选名称的值。下面的代码所做的是获取 nameID 而不是值。我不确定为什么 value 返回一个 ID,我假设 val.nameId
而不是列表中选择的名称 val.name
函数更新名称($1){
alert($1);
}
如果我使用 document.getElementById 也会发生同样的事情...
最佳答案
如果你改变这个:
<select id="name" name="name" onchange="updateName(value)">
<option/>
<c:forEach items="${nameForm.nameList}" var="val">
<option ${nameForm.name eq val.nameId?'selected':''}
value="<c:out value="${val.nameId}"/>">
<c:out value="${val.name}"/>
</option>
</c:forEach>
</select>
进入此:
<select id="name" name="name" onchange="updateName(value)">
<option/>
<c:forEach items="${nameForm.nameList}" var="val">
<option ${nameForm.name eq val.nameId?'selected':''}
value="<c:out value="${val.name}"/>">
<c:out value="${val.name}"/>
</option>
</c:forEach>
</select>
更新
像这样的怎么样:http://jsfiddle.net/robertrozas/y8e4B/
关于javascript - 当选项和 c :out is used 时,从 JSP/JSTL 中的下拉列表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396695/