関連する多くの属性を含む「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);
}
「Device」オブジェクトではなく toString() 関数の文字列のみを返す total[j].value を呼び出そうとしました。
このようにする目的は、「デバイス」オブジェクト全体を取得できない場合、チェックボックスを使用してすべての属性を 1 つずつ取得し、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);
}
個人的には、2 番目のアプローチは良い考えではないと思います。したがって、ここの誰かが、チェックボックスでパスバイオブジェクトを解決するためのより良い提案やアイデアを提供してくれることを願っています。どうもありがとう!