簡體   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