JS设置读取删除cookie及表单交互

学习cookie和表单交互留下的一点笔记

什么是cookie?
cookie 是存储于客户端的变量。当设备请求页面时,就会发送cookie。
首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
JS设置cookie:
document.cookie= key + ‘=‘ + value + ‘;expires=‘ + Date;
其中Date为cookie的过期时间。
实际案例:

//setCookie是一个设置Cookie的函数
//c_name参数设置key的值,value设置value的值,expiredays设置多少天后过期
function setCookie(c_name,value,expiredays){
    var exdate = new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    //判断c_name,value为空时,expires=也为空
    document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

读取cookie:

function getCookie(name){
    var arr=document.cookie.split(‘; ‘);
    for(var i=0;i<arr.length;i++){
        var arr2=arr[i].split(‘=‘);
        if(arr2[0]==name){
            return arr2[1];
        }
    }
    return ‘‘;
}

删除cookie就直接在setCookie的基础上,expiredays-1

function removeCookie(name){
    setCookie(name, 1, -1);
}

那么在表单交互中如何在表单中保存cookie呢?,如下是一个表单:

<form id="form1" action="http://www.baidu.com/">
    用户名:<input type="text" name="user" /><br>
    密码:<input type="password" name="password" /><br>
    <input type="submit" value="登陆" />
</form> 

将填写好的表单保存为数组赋给cookie:

function onSubmit(){
        var finalRes = $(#form1 :input).serializeArray().reduce(function(result, item){
             result[item.name] = item.value;
            return result;
        }, {})

        // 保存cookie
        var oDate = new Date();
        //设置过期时间为14天后
        oDate.setDate(oDate.getDate()+14);
        for (x in finalRes) {
            document.cookie = x+‘=‘+ finalRes[x]+‘;expires=‘+oDate ;
        }
}

关于表单交互详细可以看一下推酷的这篇文章:

由form表单来说说前后台数据之间的交互

时间: 2024-08-02 02:50:33

JS设置读取删除cookie及表单交互的相关文章

js设置 获取 删除cookie

function setCookie(key,value) { var date = new Date(), t = 5; date.setDate( date.getDate() + t ); document.cookie = key+'='+encodeURIComponent(value)+';expires='+date.toGMTString(); } // setCookie('username','liuwei'); // setCookie('password','000000

js防止回车(enter)键提交表单

如何防止回车(enter)键提交表单,其实很简单,就一句话.onkeydown="if(event.keyCode==13)return false;"把这句写在from标签里面就好了. 如果在页面中按Enter键会自动提交的话,可以设置返回值防止自动提交如<input id="q" name="q" type="text" onkeypress="javascript:return gosearch();&q

js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

//是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == "function") {            return true;        }    } catch(e) {}    return false;}//是否存在指定变量 function isExitsVariable(variableName) {    try {        if

android post(HTTP设置参数,仿html表单提交)

package com.example.testhttpurlcon; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInsta

增加cookie和表单提交的安全

设置COOKIE setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool$secure = false [, bool $httponly = false ]]]]]] ) setcookie() 定义了 Cookie,会和剩下的 HTTP 头一起发送给客户端. 和其他

服务端Json数据+js表单数据提交的 表单交互插件(base-form.js)

我们在做表单的查看.编辑里涉及两个点: 点1,提交Form表单到服务器,保存到数据库 点2,页面显示Form表单里的所有字段 如果表单的字段很多,这两个点会有两个问题: 1,提交Form时,如何少量代码.快速获取表单的所有数据? 2,页面显示Form表单时,如何自动给表单的所有字段自动赋值,而不要一个一个属性地写代码? 针对这两个问题,我有一个推荐的做法,下面以Demo举例: 1)index.html或index.jsp里写一个form表单,引入jquery.js: <srcript type=

js 上传文件模拟Form 表单

使用FormData对象 在本文章中 创建一个FormData对象 使用HTML表单来初始化一个FormData对象 使用FormData对象发送文件 利用FormData对象,你可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". 创建一个FormData对象 你可以先创建一个空的FormData对象,然后使用append()方法向该对象里添加字段,如下: var oMyForm = new FormData(); oMyForm.app

python带cookie提交表单自动登录(转)

今天突然把博客给申请了,以前也想过的,奈于自己觉得水平还太低有点不好意思写博客,但是后来一想,自己的记录所学,加深印象,主要还是为了学习进步,不怕丢人!今天就稍微回顾一下这两天写的一段用python模拟浏览器登录自己学校官网的代码吧(多亏大神指导了). 1 import urllib 2 import urllib2 3 import cookielib 4 5 login_url = "xxxxxxxxxxxxx" 6 7 cj = cookielib.CookieJar()#实例化

js判断checkbox状态,处理表单提交事件

功能描述:手机网页需要一个投票功能,通过form的post提交.有5-20个checkbox选项,至少选一项,至多选三项.需要在用户点击提交按钮前,判断checkbox的状态是否符合条件,符合则提交到后台,不符合弹窗提示. 效果图: js代码: <script> function Check(){ var cbs = document.getElementsByTagName("input"); var b = false; var count = 0; for(var i