0

假设有一个名为“Device”的模型类,其中包含许多相关属性,有没有办法通过使用 Javascript 来获取复选框中的“Device”对象?

如果我没有详细说明,这里是示例:

JSP 页面:

<c:forEach var="device" items="${row.deviceList}">
    <input type="checkbox" name="deviceDetails" value="${device}">
    <c:out value="${device.equipNo}" />
</c:forEach>

Javascript:

var total = document.getElementsByName("deviceDetails");
// run through all element of checkedbox named deviceDetails
for(j=0; j<total.length; j++)
{
  <!-- get instance Device object ? -->
  alert(total[j].value);
}

我试图调用 total[j].value ,它只返回了 toString() 函数的字符串,而不是“Device”对象。

我这样做的目的是因为如果我无法获取整个“设备”对象,我需要通过复选框将每个属性一一获取并在Javascript中将它们组装为“设备”对象。如:

JSP 页面:

<c:forEach var="device" items="${row.deviceList}">
    <input type="checkbox" name="id" value="${device.stnID}">
    <c:out value="${device.stnID}" />
    <input type="checkbox" name="stnName" value="${device.stnName}">
    <c:out value="${device.stnName}" />
    <input type="checkbox" name="equipNo" value="${device.equipNo}">
    <c:out value="${device.equipNo}" />
</c:forEach>

Javascript:

var allID = document.getElementsByName("id");
var allName = document.getElementsByName("stnName");
var allNo = document.getElementsByName("equipNo");

var deviceList = new Array(); 
var device = new Object();

for(i=0; i<allID.length; i++)
{
    device.id = allID[i].value; 
    device.stnName = allName[i].value; 
    device.equipNo = allNo[i].value;

     deviceList.push(device);
}

就个人而言,我认为第二种方法不是一个好主意。因此,希望这里有人可以提供更好的建议或任何想法来解决复选框中的对象传递问题。非常感谢!

4

1 回答 1

0

你不能Java Objects像以前那样被 Javascript 解释。您需要将对象转换为 Java 和 JS 两种语言都可以理解的符号。我用来执行此操作的一种方法是将我的 java 对象转换为 JSON,并在客户端使用 javascript 获取它。

于 2013-02-22T10:11:19.173 回答