首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

jQuery Cookie 寫入失效:檢查事件綁定與參數傳遞

     編輯:程式設計綜合問答

現象

提交按鈕點擊後,第一個 `alert` 正常彈出用戶名密碼,但 `$.cookie` 及後續 `alert('cookie saved')` 均不執行。

排查清單

  1. 插件是否正確加載:控制台輸入 `$.cookie` 應顯示函數定義,否則參考 文章 35526 更換官方插件。
  2. 點擊事件是否真正觸發:在 `click` 處理器首行加 `console.log('clicked')` 確認。
  3. 選取器是否匹配:`$("#uname")`、`$("#upwd")` 對應的 `id` 是否存在且唯一。
  4. 值是否為空:`val()` 返回空字符串時,`$.cookie(name, '')` 會**刪除**該 Cookie,導致以為寫入失敗。

修正代碼

$(function() {
    $("#sub").click(function() {
        var uname = $("#uname").val().trim();
        var upwd = $("#upwd").val().trim();
        if (!uname || !upwd) return alert("用戶名密碼不能為空");

        // Cookie 名稱固定,值為變量
        $.cookie("login_uname", uname, { expires: 10, path: '/' });
        $.cookie("login_upwd", upwd, { expires: 10, path: '/' }); // 同前:生產環境勿存明文密碼

        alert('cookie saved');
        console.log('Cookies:', document.cookie);
    });
});

關鍵修正

  • 原代碼 `$.cookie($("#uname").val(), ...)` 將**用戶名作為 Cookie 名**,導致每次名稱不同且極易衝突。
  • 固定 Cookie 名(`login_uname`、`login_upwd`),值才是變量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved