我有一个包含 5 个文本字段的 html 表单。
我有一个从 Servlet 中的数据库查询创建的用户对象的 ArrayList。
我使用 jSTL 填充了一个选择选项的下拉菜单,并且填充得很好。
<c:forEach var="user" items="${userList}">
<option>${user.userName}</option>
</c:forEach>
我想做的是在选择时将用户对象与数组列表隔离,并使用所选对象的其他属性填充表单字段,例如:
user.firstName、user.lastName、user.email 等...
我一天中大部分时间都在寻找答案,但没有运气。
感谢任何帮助。
最佳答案
这可以在 Javascript 中轻松处理。 <option>
标签有 value
属性,您可以在其中“存储”要显示的数据。 JSTL
会有分隔字段,例如使用逗号:
<select id="names" onchange="fillInFields()">
<c:forEach var="user" items="${userList}">
<option value="${user.firstName},${user.lastName},...">${user.userName}</option>
</c:forEach>
</select>
Javascript:
function fillInFields() {
var fields = document.getElementById("names").value.split(",");
document.getElementById("firstNameField").value = fields[0]; // name
...
}
为了完整起见,字段:
<input id="firstNameField">
...
此方法需要注意的一点是,它不依赖于逗号字符 ,
存在于所选字段中。在这种情况下,可以使用另一个分隔符。
关于java - 从 java beans 选择下拉菜单填充表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622749/