1

次のコードを使用して、チェックボックスの値を切り替えようとしています。

<div class="control-group">
        <label class="control-label checkbox" for="IsViewAsWebpage">
            {{#if this.IsViewAsWebpage}}
                <input type="hidden" id="IsViewAsWebpage" name="IsViewAsWebpage" value="true"/> 
                <input type="checkbox" class="enable-checkbox" checked /> 
            {{else}}
                <input type="hidden" id="IsViewAsWebpage" name="IsViewAsWebpage" value="false"/> 
                <input type="checkbox" class="enable-checkbox" /> 
            {{/if}}
            <span>View as Webpage</span>
        </label>
    </div>



'click .enable-checkbox': function (e) {
                if (e.currentTarget.parentElement.htmlFor == "IsViewAsWebpage") {
                     this.$('#IsViewAsWebpage').is(':checked');
            }

        }

クリック機能で何かが足りないことはわかっています。基本的に、ユーザーがチェックボックスの値をクリックしたときにチェックボックスの値を切り替えたいと思います。誰かが私を正しい方向に向けることができますか?ありがとうございました。

4

2 に答える 2

1

チェックボックスをクリックしたときにhandlebars.jsを使用してコンテンツを切り替える場合は、チェックボックスを変更するたびにハンドルバーを呼び出してコンテンツを置き換える必要があります。

$(".enable-checkbox").change(function (e) {
    if($(this).parent().attr("for") == "IsViewAsWebpage") {
        var checked = $(this).is(":checked");
        IsViewAsWebpage = checked;
        $("#yourcontainer").html(Handlebars.compile(yourtemplatesource));
    }

}

その場合、IsViewAsWebpage変数はグローバルであり、口ひげの状態は次のようになります。

{{#if IsViewAsWebpage}}

しかし、これは何の意味もなく複雑です... Estheteソリューションを使用するだけで、多くの時間を節約できます。

于 2012-09-17T22:48:50.550 に答える
1

チェックボックスをクリックすると、切り替わります。これがチェックボックスの仕組みです。

チェックボックスを切り替えたときに非表示の入力を変更したい場合valueは、次のようにします。

$(".enable-checkbox").change(function (e) {
    if($(this).parent().attr("for") == "IsViewAsWebpage") {
        var checked = $(this).is(":checked"); // Returns true/false.
        $('#IsViewAsWebpage').attr("value", checked); // Sets true/false.
    }        
});
于 2012-09-17T22:35:02.407 に答える