利用cookies记忆评论用户信息及产生验证码的一个例子

核心代码如下

<DIV id="comment_post" class="comment_frame">
<DIV class="comment_title">Post Comment:</DIV>
<form action="" method="POST" onsubmit="return validate();">
<input type="hidden" name="editsave" value="253001" />
<p><label for="id_name">Name (required):</label> <input id="id_name" type="text" name="name" maxlength="20" /></p>
<p><label for="id_email">E-mail (optional):</label> <input id="id_email" type="text" name="email" maxlength="30" /></p>
<p><label for="id_site">Website (optional):</label> <input id="id_site" type="text" name="site" maxlength="150" /> http://xxx.com</p>
<p><label for="id_content">Message (Required):</label> <textarea id="id_content" style="width:400px;height:60px;" rows="10" cols="40" name="content"></textarea> A maximum of 300 characters</p>
<p>Verification Code:<input  type="text" id="input1" name="vericode1" style="width: 50px" onclick="createCode()" /> 
<input type="text" name="vericode2" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 50px" /> 
<input type="submit" name="submit_btn" style="width: 90px" value="Submit" onClick="login();"/></p>
</form>
<script language="javascript" type="text/javascript"> 
var code ; 
function createCode(){
    code = "";
    var codeLength = 4;
    var checkCode = document.getElementById("checkCode");  
    var selectChar = new Array(0,1,2,3,4,5,6,7,8,9);
    for(var i=0;i<codeLength;i++){
        var charIndex = Math.floor(Math.random()*selectChar.length);
        code +=selectChar[charIndex];
    }
    //alert(code);  
    if(checkCode){  
        checkCode.className="code";  
        checkCode.value = code;  
    }
}  
function validate(){
    var inputCode = document.getElementById("input1").value;  
    if(inputCode.length <=0){  
        alert("Please Enter Verification Code");
        createCode();
        return false;
    }else if(inputCode != code ){
        alert("Please Enter Right Verification Code");
        createCode();
        return false;
    }else{
        //alert("^-^ OK");
        return true;  
    }  
}

//createCode();
//set cookie
function setcookie(name,value){
    var Days = 30;
    var exp  = new Date();
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}

function getcookie(name){
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
    if(arr != null){
        return unescape(arr[2]);
    }else{
        return "";
    }
}

function login(){
   setcookie("author",document.getElementById(‘id_name’).value);
   setcookie("email",document.getElementById(‘id_email’).value);
   setcookie("url",document.getElementById(‘id_site’).value);
}

function loadcookies(){
    document.getElementById("id_name").value = getcookie("author");
    document.getElementById("id_email").value = getcookie("email");
    document.getElementById("id_site").value = getcookie("url");
}

if (document.cookie != "") {
    loadcookies(); 
}

// set cookie end
//
function show_post_comment(){
    document.getElementById("comment_post").style.display = "block";
}
//
function replyto(somebd){
    show_post_comment();
    document.getElementById("id_content").value = "To("+somebd+"):";
}
</script>
</DIV>

可以复制保存为html文件试试。

注意:js代码和提交评论按钮的相对位置,要将js代码放在提交评论按钮后面,cookies读写功能才能生效。

完整实例包下载(14.1k)

http://www.uushare.com/user/hikefreeman/file/2772104

利用cookies记忆评论用户信息及产生验证码的一个例子》上有 1 条评论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>