Javascript:从复选框中获取对象

时间:2013-02-22 09:13:46

标签: javascript jsp

假设有一个名为“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”对象。

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

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);
}

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

1 个答案:

答案 0 :(得分:0)

您不能像{J}那样通过Java Objects来解释。您需要将对象转换为可由Java和JS两种语言理解的符号。我用来做这个的方法是将我的java对象转换为JSON,并通过javascript在客户端获取它。