1

探していますが、必要なものが正確に見つかりません。

私の問題はこれに似ています:チェックボックスを有効にするために配列をループします

しかし、私は単純な var Array を持っていません。空港のリストを持つオブジェクト Travel があるとします。そして、旅行を編集したいと思います。私のjspには、空港の完全なリストがあります:(Springを使用しています)

<c:forEach var="airport" items="${airports}">
   <tr>
      <td><input type="checkbox" name="airportsIds" value="${airport.id}" /></td>
      <td><c:out value="${airport.name}" /></td>
   </tr>
</c:forEach>

ここで、jQuery を使用して、Travel オブジェクトの Airports のリストをループし、既に持っているものを確認したいと考えています。

${airports} は空港の完全なリストです。

Travel の空港のリストは ${travel.airports} になります。

public class Travel {
    private List<Airport> airports;
    ...
}

public class Airport {
    private String Id;
    private String Name;
    private String Country;
    ...
}

(クラスの簡易版)

そして、コントローラーに次のメソッドがあります。

mav.getModelMap().put("travel", travel); //commandObject
List<Airports> airports = getAllAirportsFromDB();
mav.getModelMap().put("airports", airports);

私が十分に明確であることを願っています:)

4

2 に答える 2

0

input[name=airportIds]すべてのチェックボックスには次の名前が付いているため、セレクターを使用してすべてのチェックボックスにアクセスできるはずです。airportIds

$("input[name=airportIds]").attr("checked", "checked");

編集


オブジェクト内にあるものをループする場合はTravel、ページまたはインラインJSに追加のデータを書き込む必要があります。data-is-in-travel指定された空港がの一部である場合は 、各タグに属性を設定する可能性があります${travel.airports}

私はC#の人です(構文エラーがある場合はご容赦ください):

<td><input type="checkbox" name="airportsIds" value="${airport.id}" 
     data-is-in-travel="${travel.airports.contains(airport)}"/></td>

そしてjQueryで

$("input[data-is-in-travel=true]")
于 2013-01-17T20:19:09.713 に答える
0

ShaneA の投稿に触発されて、コントローラーで ID (travel.airports ID) のリストを作成し、それを jsp に渡しました。

List<Long> aiportIds = new ArrayList<Long>();
for (Airport a : travel.getAirports()) {
    aiportIds.add(a.getId());
}
mav.getModelMap().put("aiportIds", allowed);

そこから私はしました:

var airportsIds = ${airportsIds};
$.each(airportsIds, function() {
    $("#" + this).attr("checked", "checked");
})

${travel.airports} をループで直接使用することをお勧めしますが、jQuery は Airport オブジェクトを好みませんでした。

于 2013-01-21T13:24:40.970 に答える