我有一个包含5个文本字段的html表单。
我有一个用户对象的ArrayList,它是从servlet中的数据库查询创建的。
我已经使用jstl填充了一个选择选项的下拉菜单,它填充得很好。
<c:forEach var="user" items="${userList}">
<option>${user.userName}</option>
</c:forEach>
我要做的是在选择时将用户对象与数组列表隔离,并使用所选对象的其他属性填充表单字段,例如:
user.firstName,user.lastName,user.email等....
我一直在寻找答案,大部分时间没有运气。
感谢任何帮助。
答案 0 :(得分:2)
这可以在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">
...
这种方法需要注意的一点是,这依赖于所选字段中不存在逗号字符,
。在这种情况下,可以使用另一个分隔符。