我在JSP中有一个下拉框,其中列出了一个Java对象(通过MVC控制器的addAttribute访问该对象)。现在,在从下拉框中选择一个选项时,我希望在div中显示所选员工的其他详细信息(例如${employee.employeeCV},${employee.employeeName})。为此,我有一个JavaScript函数(displayCV())。但我不确定该怎么做。
JSP -
<c:forEach items="${employees}" var="employee">
<option value="${employee.id}" onclick="displayCV();">
${employee.employeeName}
</option>
</c:forEach>
<b>CV:</b>JavaScript
function displayCV() {
var valueSelected = $('#employeeList').val();
var div = $('#candidateDiv');
}我该怎么做呢?
发布于 2011-07-05 09:36:02
您不能直接从JavaScript访问Java类。您必须在JavaScript (客户端)和Java (服务器)之间使用某种web服务通信。您可以利用onchange事件,它将向服务器发送一个请求以返回XML/JSON,您可以解析它来获取数据(我看到您正在使用jQuery,它已经有了parseJSON方法)并更新DOM中的相应节点。
不过,另一种对多用户不友好的更简单的方法(因为它不能检测更新)是将Java对象“转换”为JavaScript并使用该对象更新数据(仍然使用onchange)。类似于:
// This is JavaScript code written in the JSP
var employees = {
<c:forEach items="${employees}" var="employee">
"${employee.id}": {
name:"${employee.employeeName}",
cv:"${employee.employeeCV}",
},
</c:forEach>
}现在,当JSP解析它时,它将生成,例如:
var employees = {
"1": {
name:"foo",
cv:"cv1",
},
"2": {
name:"bar",
cv:"cv2",
},
}发布于 2011-07-05 11:17:32
首先,您必须了解JSP是一种服务器端视图技术,而JavaScript通常运行在客户端(浏览器)上。
现在,我们来看看如何解决手头的问题。因此,您可以从JavaScript代码发出一个Ajax请求,它将获取JSON/XML格式的数据。然后,您可以使用JavaScript在浏览器中显示该数据。
发布于 2017-01-19 16:25:42
在select的onchange事件上调用函数,而不是在options的onclick事件上调用该函数。并使用:
document.getElementById('GrdDamagedstock_tplRowEdit_ctl00_cmbFromBin').options[ele.options.selectedIndex].innerHTML;以获取选定的值。
https://stackoverflow.com/questions/6577246
复制相似问题