在我的 jsp 页面中我有:
<form:select path="index" id="sIndex" onchange="showDetails()">
<form:options items="${smth}" itemLabel="name" itemValue="index"/>
</form:select>
在我的 javascript 函数中:
*function showDetails() {
var sIndex=document.getElementById("sIndex");
var index=sIndex[sIndex.selectedIndex].value;
var name = '${smth[index].name}';
var address = '${smth[index].address}';
var message = "<table><tr><td>Name:</td><td>" + name + "</td></tr>";
message = message + "<tr><td>Address:</td><td>" + address + "</td></tr>"
message = message + "</table>"
document.getElementById("candDetails").innerHTML = message;
}*
而且它不使用 ${} 中的索引,但如果我使用 alert(index) 它会识别它。
最佳答案
Java/JSP/JSTL 在服务器端运行,生成 HTML/CSS/JS 输出并将其发送到客户端。 HTML/CSS/JS 在客户端运行,而不是像您显然预期的那样在服务器端运行。在浏览器中打开页面并执行“查看源代码”。你看到了吗?
Javascript 只能在客户端看到 HTML DOM 树并可以访问它。您需要从 HTML DOM 树中获取名称和地址。您已经在 option 元素中有了名称,但地址无处可用。您可以使用 JSTL 生成一个 Javascript 数组变量,以便 Javascript 代码可以进一步使用它。
要了解有关 Java/JSP 和 Javascript 之间的壁垒的更多信息,您可以找到 this article有用。
关于javascript - 在 Javascript 中使用 jSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664109/