Javascript 使用JSTL动态更改文本字段值
我是JSTL的初学者,因为我最近才开始使用它来避免在我的JSP中使用scriplets,我想就我遇到的问题寻求帮助 我有一个select元素,我已经使用JSTL用arraylist填充了它。但是,每当选择下拉列表中的不同选项时,我还需要动态更改只读文本字段的值,并且文本字段中的值与所选选项在arraylist中的索引相同,这就是我遇到问题的地方Javascript 使用JSTL动态更改文本字段值,javascript,jsp,jstl,Javascript,Jsp,Jstl,我是JSTL的初学者,因为我最近才开始使用它来避免在我的JSP中使用scriplets,我想就我遇到的问题寻求帮助 我有一个select元素,我已经使用JSTL用arraylist填充了它。但是,每当选择下拉列表中的不同选项时,我还需要动态更改只读文本字段的值,并且文本字段中的值与所选选项在arraylist中的索引相同,这就是我遇到问题的地方 <select id="department" onchange="managerfill()"> <c:forEach var="d
<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>
如果“部门”和“经理”字段都是下拉列表,情况会更简单,但我们需要将“经理”设置为文本字段,所以我在尝试解决这个问题时有点不知所措 不能在呈现的页面上使用jstl语言。 jstl只是服务器端,不能在最终用户浏览器上使用 您需要使用js来更改它 除了无法再解释的jstl语法外,您编写的函数很好
function managerfill() {
var select = document.getElementById("department");
var x = select.selectedIndex;
document.getElementById("manager").value = select.options[x].text;
}
这样的办法应该行得通
但是我认为您想要打印的文本是服务器端的,因此您可以在一些html/标记或隐藏选择中打印它,并从中获取结果。
替换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;
}
函数managerfill(){
var select=document.getElementById(“部门”);
var selectManager=document.getElementById(“部门经理”);
var x=select.selectedIndex;
document.getElementById(“manager”).value=selectManager.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;
}