1

ToS を確認するためのチェックボックスがあります。ユーザーがこのチェックボックスをオンにして ToS を確認しない限り、PayPal ボタンは 50% の透明レイヤーでオーバーレイされ、押すことができません。別の PayPal ボタン、View Card などでも同じことが言えます。ユーザーがチェックボックスをオンにせずに PayPal ボタンを押そうとすると、チェックして ToS を確認する必要があるという JS アラートが表示されます。

私の問題は、ユーザーがページをリロードしたり別のページに移動したりすると、チェックボックスがチェックされた状態を忘れてしまうため、各ページでチェックボックスをチェックする必要があることです。悲しいことです。

これは、チェックボックス、オーバーレイ、およびアラートのプッシュを行うコード、HTML および JS です。コードは Joomla フレームワーク内で動作し、Joomla のコンポーネント K2 JQuery: HTML で動作します。

<p class="toskorb">Please check the checkbox and confirm our ToS!<input class="checkbox" name="TOS" id="TOS" value="read" type="Checkbox" /><img src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_paynowCC_LG.gif">

JS

var $K2 = jQuery.noConflict();

$K2(document).ready(function(){

//$K2('#TOS').attr('checked', false);
//$K2('input[type=image]').attr("class", "agbunchecked");
//$K2('input[type=image]').bind("click", giveAllert);

if(!$K2('#TOS').attr('checked')) //
{
    $K2('input[type=image]').attr("class", "agbunchecked");
    $K2('input[type=image]').bind("click", giveAllert);
}

function giveAllert()
{
    alert("Please check the checkbox and confirm our ToS!");
    return false;
}

$K2('#TOS').change(function(event){
    if(this.checked) 
    {
        $K2('input[type=image]').attr("class", "agbchecked");
        $K2('input[type=image]').unbind("click");
    }
    else
    {
        $K2('input[type=image]').attr("class", "agbunchecked");
        $K2('input[type=image]').bind("click", giveAllert)
    }
});

});

物事を知っている誰かがチェックボックスをチェックしたままにするためにこのコードを完成させることができれば、それは素晴らしいことです。コードスニペット、完成、正しい方向へのアドバイスをありがとう

PS:申し訳ありませんが、以前は言いませんでした。可能であれば、Cookieではなくセッションを使用したソリューションを探しています。前回の EU Cookie 法以降、Cookie を拒否する人が増えています:(

PPS: このコードは、ページの更新時および前後のブラウジング時にチェックボックスのチェック状態を記憶します:

<?php

$a = array("ToS_yes");

foreach($a as $key => $value)
{
  echo "<input type='checkbox' name='rating[]' value='$value'"; if(in_array($value,$_POST['rating'])) echo " checked "; echo ">$value";
}

?> しかし、別のページでもステータスを覚える方法は? それがコツです

4

1 に答える 1

1

クッキーを使用する:

$.cookie("tos", true); // set the cookie to true (once the tos is clicked).

次に、各ページで Cookie を取得し、それが true の場合は、自動的にチェックボックスをオンにします。

jQuery バージョン以降1.6:

var tos = $.cookie("tos");

if (tos) {
   $('myCheckbox').prop('checked', true);
}

1.6あなたが使用しなければならないよりも低いjQueryバージョン.attr()

var tos = $.cookie("tos");

if (tos) {
   $('myCheckbox').attr('checked', true)
}

http://plugins.jquery.com/project/Cookie

http://www.w3schools.com/js/js_cookies.asp

于 2013-02-08T11:46:33.527 に答える