繁体   English   中英

使用JSTL动态更改文本字段值

[英]Dynamically changing text field value using JSTL

我是JSTL的初学者,因为我最近才开始使用它,以避免在我的JSP中使用scriplets,所以我想寻求有关我被困的东西的帮助。

我有一个选择元素,我已经设法使用JSTL用arraylist填充它。 但是,每当在下拉列表中选择了其他选项时,我还需要动态更改只读文本字段的值,并且要在文本字段中放置的值与选定选项在数组列表中的索引相同,这就是我有麻烦了。

<select id="department" onchange="managerfill()">
<c:forEach var="dept" items="${departments}">
<option value="${dept.deptname}"><c:out value="${dept.deptname}"/></option>
</c:forEach>
</select>

<input type="text" id="manager" readonly>

我试图使用js函数来更改文本字段的值,但到目前为止,我还没有让它起作用。

function managerfill() {
var x = document.getElementById("department").selectedIndex;
document.getElementById("manager").value="${departments[x].manager}";
}

如果部门和经理字段都为下拉列表,这会更容易,但是我们需要将经理设为文本字段,因此尝试解决此问题我有点无所适从。

您不能在呈现的页面上使用jstl语言。 jstl仅用于服务器端,不能在最终用户浏览器上使用。

您需要使用js进行更改。

您编写的函数很好地期望了无法再解释的jstl语法。

function managerfill() {
  var select = document.getElementById("department");
  var x = select.selectedIndex;
  document.getElementById("manager").value = select.options[x].text;
}

这样的事情应该起作用。

但是我认为您要打印的文本是服务器端的,因此您可以将其打印为html / tag或隐藏的select并从中获取结果。 替换select.options[x].text

<select id="departments-manager" class="hidden">
  <c:forEach var="dept" items="${departments}">
    <option value="${dept.manager}"><c:out value="${dept.manager}"/></option>
  </c:forEach>
</select>


function managerfill() {
  var select = document.getElementById("department");
  var selectManager = document.getElementById("departments-manager");
  var x = select.selectedIndex;
  document.getElementById("manager").value = selectManager.options[x].text;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM