Javascript 如何在继续之前强制web用户阅读并检查NDA?

Javascript 如何在继续之前强制web用户阅读并检查NDA?,javascript,jquery,Javascript,Jquery,每次用户注册到我们的网站时,我们都需要出示NDA(保密协议)。为了继续,用户必须接受它。我的问题是,我在所有一个页面上都有NDA,而用户并没有真正阅读并接受它(就像我们所有人一样) 我想要的是确保用户阅读NDA并在“阅读”它时接受它 现在,如果用户选中一个框并单击accept,我就可以进行一个简单的jQuery验证。然后进入下一页 这是我的 <script> $(document).ready(function() { $('#go').click(function() { /

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

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

现在,如果用户选中一个框并单击accept,我就可以进行一个简单的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>

$(文档).ready(函数(){
$('#go')。单击(函数(){
//检查复选框是否选中并转到下一页
//我有这个密码
});
});
完整保密协议

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

我只是不希望用户盲目地接受保密协议


谢谢,这取决于你想怎么做。这里有三种常见的方法

  • 我接受本披露协议|复选框
  • 一旦他们滚动到底部,启用“下一步”按钮
  • 设置计时器,一旦时间过去,启用“下一步”按钮

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

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

    工作小提琴:

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

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

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

    //主页面
    函数getTC(){
    var id=$(“.段落:最后一段”).attr(“id”).replace('tnc','');
    如果((parseInt(id)+1)>10){
    返回;
    }
    $.post(“terms.php?段落=“+id,函数(r)){
    $(“#术语”)。附加(r);
    });
    }
    $(文档).ready(函数(){
    $(窗口)。滚动(函数(){
    if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
    getTC();
    }
    });
    //复选框的逻辑&使用.live提交
    });
    我爱你,我爱你。。。
    我爱你,我爱你。。。
    我爱你,我爱你。。。
    我爱你,我爱你。。。
    //php
    
    FootieLegend基本上给了你所有的场景。现在,问题是:在用户数据库中是否有一个字段包含“NDAread”?这样,您可以在用户下次返回站点时检查它,如果未选中(“Y”-字符字段),则再次将用户发送到NDA。。。在此之前,您可以(以某种方式)禁止该用户,或者他接受该协议。

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

    没有简单的方法可以强迫用户阅读整个协议。最好的办法是强迫用户滚动到协议的底部,假设用户将阅读全文

    $('#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以下工作

    请看小提琴的例子

    我的问题是,我的NDA在所有的一个页面,用户并不真的 阅读并接受它(就像我们所有人一样)

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

    确认他们确实读过的唯一方法是在他们继续之前给他们一个理解测试,即强迫他们回答一些关于他们所读内容的问题。我从来没有见过用注册协议(只使用培训材料)来实现这一点,但你可以做到。我不建议你真的这么做,但是…听起来这就是你要问的,而且很容易实现。(只是对用户来说很烦人。)

    除此之外,当然还有一些常见的技术,很多网站都使用这些技术来“鼓励”用户阅读协议,比如不让用户继续阅读,除非他们滚动到文本的底部(如果你只有一个简短的协议,那么就把它放在一个更短的滚动div中),或者通过超链接访问文本,如果用户没有单击超链接然后勾选框,则不允许用户继续。或者一个计时器。但我认为大多数用户习惯于跳过这些内容而不阅读它们

    在你的情况下,你说协议只有一页,所以这比一份长协议更有可能被阅读


    我认为最好的解决办法是“别担心”。他们已经点击了方框,所以如果他们违反协议,你可以起诉他们。将协议以纯文本形式填写,然后在复选框旁边用粗体写一行,表示他们受协议的法律约束。

    对我来说,重要的是让他们签字。也就是说,确认他们同意这些条款,而不是他们必须全部阅读。如果他们不看就签了什么,那就是他们的问题

    然后(至少在理论上)你可以要求他们承担违反协议的任何后果,因为你有他们同意条款的“证据”。(从法律上讲,数据库中的值不是真正的证据,因此,如果您真的需要,您可能必须让他们在某些内容上签名并将其返回给您。)


    正如其他人已经提到的,确实没有合理、简单的方法确保他们阅读所有内容。

    Nodoby实际上阅读了这些内容,不管你采取了什么对策。好吧,我没有阅读任何内容。。。但是,我必须单击复选框并单击按钮。这是最初的问题。。。我相信。例如,在我的会员网站上,我需要电子邮件验证。用户可以选择在注册时或以后验证电子邮件。当他登录下次访问时,我检查电子邮件验证
    $('#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');
        }
    });