在继续操作之前,如何强制网络用户阅读和检查NDA?

时间:2011-11-13 01:39:32

标签: javascript jquery

每次用户注册我们的网站时,我们都需要显示NDA(保密协议)。为了继续,用户必须接受它。我的问题是我在所有页面中都有NDA,用户并没有真正阅读并接受(就像我们所做的那样)。

我想要的是确保用户阅读NDA并接受它“阅读”它?

如果用户选中一个框并单击“接受”,我现在拥有的是一个简单的jQuery验证。然后它进入下一页。

这就是我所拥有的

<script>
$(document).ready(function() {
 $('#go').click(function() {
  // check if checkbox is check and go to next page
  // i have this code
 });
});
</script>
<div>
full nda
<hr>
<input type=checkbox> <input type=button value=go id=go>
</div>

我已经有了复选框和按钮的代码

我根本不希望用户盲目接受nda

由于

7 个答案:

答案 0 :(得分:10)

如果您想阻止用户找到“我同意的复选框”并按正确方式提交按钮,您必须隐藏它,然后在阅读完最后一页后显示这些输入。

这是您可以使用的示例脚本。这会在您滚动页面时加载术语,在最后一个时,它会添加一个复选框和提交按钮。

确保页面足够长,因此您必须滚动并使用.live事件(因为加载页面时复选框和输入按钮不存在)

// main page
<script>
function getTC() {
    var id = $(".paragraph:last").attr("id").replace('tnc', '');
    if((parseInt(id) + 1) > 10) {
        return;
    }
    $.post("terms.php?paragraph=" + id, function(r) {
        $('#terms').append(r);
    });
}

$(document).ready(function() {
    $(window).scroll(function(){
        if($(window).scrollTop() == $(document).height() - $(window).height()) {
            getTC();
        }
    });

    // logic for checkbox & submit using .live

});
</script>

<div id="terms">
 <div class="paragraph" id="tnc1">
  Lorem ipsum dolor sit amet ...
 </div>
 <div class="paragraph" id="tnc2">
  Lorem ipsum dolor sit amet ...
 </div>
 <div class="paragraph" id="tnc3">
  Lorem ipsum dolor sit amet ...
 </div>
 <div class="paragraph" id="tnc4">
  Lorem ipsum dolor sit amet ...
 </div>
</div>

// php
<?php

// add security here

if(!isset($_GET['paragraph'])) {
    $_GET['paragraph'] = '1';
}
$_GET['paragraph'] = (int)$_GET['paragraph'] + 1;

if($_GET['paragraph'] <= 10) {
?>
<div class="paragraph" id="tnc<?php echo $_GET['paragraph'] ;?>">
Lorem ipsum dolor sit amet ...
</div>
<?php
    if($_GET['paragraph'] == 10) {
        echo '<hr/>I agree with the terms and conditions <input type="checkbox" /><input type="button" value="I accept" /><hr/>';
    }
}

答案 1 :(得分:3)

这取决于你想要怎么做。以下是人们常用的三种方式。

  1. 我接受此披露协议|复选框
  2. 一旦滚动到它的底部,启用“下一步”按钮
  3. 设置一个计时器,一旦时间结束,就可以使用“下一步”按钮。

答案 2 :(得分:3)

以下是您想要的基本结构:

if($('#mycheckboxid').attr('checked')) {
    window.location='http://stackoverflow.com';
} else {
    alert("You must Opt in");
}

工作小提琴:http://jsfiddle.net/XPEE7/2/

答案 3 :(得分:3)

这更像是一种用户体验设计问题。

没有简单的方法可以强迫用户阅读整个协议。您可以做的最好的事情就是强制用户滚动到协议的底部,假设用户要完整阅读。

$('#agreement').scroll(function(event) {
    var scroller = $(this)
        , cnt = $('.content', this);

    if (scroller.scrollTop() + scroller.height() >= cnt.height()) {
        $('#confirm').removeAttr('disabled');
    }
    else {
        $('#confirm').attr('disabled', 'disabled');
    }
});

这个概念需要实现一个滚动条并使用一个处理程序来监听滚动条的滚动事件。在达到协议底部的情况下,启用确认按钮。

这是一个粗略的例子。请在Firefox / Safari中测试它。我怀疑它在IE9下运行。

请看一下这个例子的小提琴。

http://jsfiddle.net/gzfelix/7GArc/

答案 4 :(得分:3)

  

我的问题是我在所有页面都有NDA而用户并不是真的   阅读并接受(就像我们所做的那样)。

     

我想要的是确保用户阅读NDA

确认他们实际读过它的唯一方法是在他们继续之前给他们一个理解测试,即强迫他们回答一些关于他们所读内容的问题。我从未见过使用注册协议(仅限培训材料)完成此操作,但您可以执行此操作。我不建议你真的这样做,但是......听起来这就是你所要求的,而且很容易实现。 (对用户来说非常烦人。)

否则,当然有很多常用技术可以让很多网站“鼓励”用户阅读协议,比如不让用户继续,除非他们滚动到文本的底部(如果你只有一个简短的协议然后把它放在一个更短的滚动div),或通过超链接访问文本,如果他们没有点击超链接并且然后勾选该框,则不让用户继续。或计时器。但我认为大多数用户习惯于在不阅读这些内容的情况下跳过这些内容。

在您的情况下,您说协议只有一页,因此比长期协议更有可能被阅读。

我认为最好的解决方案是“别担心”。他们点击了这个盒子,所以如果他们违反了协议,你可以起诉他们。将协议以纯文本形式提出,然后在复选框旁边以粗体显示一行内容,说明它们受到协议的法律约束。

答案 5 :(得分:0)

FootieLegend基本上已经为您提供了所有场景。现在,问题是:你在USERS数据库中有一个字段,你有一个“NDAread”吗?这样,您可以在用户下次返回站点时进行检查,如果未选中(“Y” - 字段字段),则会再次将用户发送到NDA ...直到您可以禁止用户(某种程度上)或他接受协议。

答案 6 :(得分:0)

对我来说,重要的是让他们签名。也就是说,确认他们同意这些条款,而不是他们必须全部阅读。如果他们在没有阅读的情况下签名,那就是他们的问题。

然后(至少在理论上)你可以让他们承担违反它的任何后果,因为你有'证据'他们同意这些条款。 (从法律上讲,数据库中的值不是真正的证明,所以如果你真的需要 你可能需要让他们在物理上签名并将它归还给你。)

正如其他人已经提到的那样,确实没有合理的,万无一失的方式确保他们全部阅读。