[英]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.