製品のリストを表示するフォームがあります。
各製品は、選択または選択解除できます。ユーザーは自分の製品を選択してから、続行 (送信) ボタンを押す必要があります。
選択を示すためにhttp://www.bootstrap-switch.org/を使用しました
私の問題は、ページが読み込まれるときに、一部の製品がデフォルトで選択されることになっていることです。
このためのコードは次のとおりです。
<ui:repeat value="#{bean.products}" var="product" varStatus="status">
<li>
<div>
<div>
<div>
<div style="width: 100%;">
<div>
<div><b>#{product.productName}</b></div>
</div>
<div>
<div class="make-switch switch-mini " data-on-label="Yes" data-off-label="No">
<input class="switch#{status.index}" type="checkbox"></input>
</div>
<input type="hidden" class="checked#{status.index}" value="#{product.initiallySelected}"></input>
</div>
</div>
</div>
</div>
</div>
</li>
</ui:repeat>
最初に選択した製品を「チェック済み」としてマークする必要がある JavaScript がありますが、これまで試したことはありません。これが私のJSです:
$(document).ready(function() {
flipSwitches(0);
}
function flipSwitches(index) {
if ($(".checked"+index).length != 0) {
var b = $(".checked"+index).val();
alert(b);
if (b == "true" || b == true) {
alert("selected");
// $(".switch"+index).attr('checked', true);
// $(".switch"+index).bootstrapSwitch('toggleStatus');
// $(".switch"+index).bootstrapSwitch('status');
// $(".switch"+index).bootstrapSwitch('setState', true);
}
flipSwitches(index+1);
}
}
バックエンドに Java Bean を使用して、JSF 2.1 (Apache MyFaces 2.1.5)、JQuery 2.0.2 を使用しています。誰かが私を助けてくれたり、私が間違っていることを指摘してくれたりしたら、私は最高です!