1

我有一个用于确认 ToS 的复选框。在用户未选中此复选框并确认 ToS 之前,PayPal 按钮覆盖有 50% 透明层且无法按下。另一个 PayPal 按钮、查看卡等也是如此。如果用户尝试按下任何 PayPal 按钮而不选中复选框,他会收到 JS 警报,他必须检查它并确认 ToS。

我的问题是,复选框忘记了它的选中状态,如果用户重新加载页面或转到另一个页面,所以他必须检查每个页面上的复选框,这很可悲。

这是代码,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 的解决方案。在去年的欧盟 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:

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

然后在每个页面上检索 cookie,如果为真,则自动选中该框。

jQuery1.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 回答