0

我有一个带有 5 个文本字段的 html 表单。

我有一个从 servlet 中的数据库查询创建的用户对象的 ArrayList。

我已经使用 jstl 填充了选择选项的下拉菜单,并且填充得很好。

<c:forEach var="user" items="${userList}">
<option>${user.userName}</option>
</c:forEach>

我要做的是在选择时将用户对象与数组列表隔离,并使用所选对象的其他属性填充表单字段,例如:

user.firstName、user.lastName、user.email 等......

我大部分时间都在寻找答案,但没有运气。

任何帮助表示赞赏。

4

1 回答 1

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">
...

,这种方法的一个警告是,这依赖于所选字段中不存在逗号字符。在这种情况下,可以使用另一个分隔符。

于 2013-03-25T21:46:49.453 回答