0

製品のリストを表示するフォームがあります。

各製品は、選択または選択解除できます。ユーザーは自分の製品を選択してから、続行 (送信) ボタンを押す必要があります。

選択を示すために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 を使用しています。誰かが私を助けてくれたり、私が間違っていることを指摘してくれたりしたら、私は最高です!

4

1 に答える 1

1

入力にidを追加します。つまり

<input id="myswitch" type="checkbox"/>

次に、それをチェックすることができます

if(status==true){
    $('#myswitch').prop('checked',true);
}

それが私がやった方法であり、それは私のために働いた.

于 2013-10-25T09:12:58.960 に答える