2017-03-20 62 views
0

我試圖通過讀取cookie數據預先填充多個表單域。代碼似乎沒有將cookie數據分割成字段,而是將它們分組在一起。我似乎無法弄清楚。讀取cookie值並填寫值以形成字段

這裏是我的代碼:

<html> 
<head> 

<script language="JavaScript1.2" type="text/javascript"> 

    var today = new Date(); 
    var expiry = new Date(today.getTime() + 30 * 24 * 3600 * 1000); // plus 30 days 

    function setCookie(name, value){ 
    document.cookie=name + "=" + escape(value) + "; path=/; expires=" + expiry.toGMTString(); 
    } 

function putCookie(form){ 
    setCookie("FirstName", form[0].FirstName.value); 
    setCookie("LastName", form[0].LastName.value); 

    return true; 
    } 

</script> 


<script language="JavaScript1.2" type="text/javascript"> 

function ReadCookie(){ 

if (document.cookie != ""){ 
     cookies = document.cookie.split(";"); 
     for (var i = 0; i < cookies.length; i++) { 
      cookie = cookies[i].trim().split("="); 
      if (cookie[0] == 'FirstName') { 
       document.TestForm.FirstName.value = cookie[1]; 
      } 
      if (cookie[0] == 'LastName') { 
       document.TestForm.LastName.value = cookie[1]; 
      } 
     } 

} 

</script> 

</head> 

<body onload="ReadCookie()">   

<form name="TestForm"> 
<input type="text" value="Enter Your First Name" id="nameBox" name='FirstName'> 
<input type="text" value="Enter Your Last Name" id="nameBox" name='LastName'> 

<input type="button" value="Go!" id="submit" onclick="putCookie(document.getElementsByTagName('form'));"> 

</form> 



</body> 
</html> 
+1

你可以請張貼cookie的樣子嗎? – AlvaHenrik

回答

0

如果我正確理解你的代碼,那麼你要設置一個cookie的「姓= XXXXX; PATH = ......」,然後用一個「姓」。 document.cookie應該給你「FirstName = xxxx; LastName = yyyy」。我不確定putCookie()是否適用於此代碼。仔細檢查一下cookies是否真的設置好了。

因此,您首先必須通過「;」分割cookie,然後循環訪問cookie,然後通過「=」獲取值。這裏是一個應該與你的代碼一起工作的例子:

function fillIn(){ 
    if (document.cookie != ""){ 
     cookies = document.cookie.split(";"); 
     for (var i = 0; i < cookies.length; i++) { 
      cookie = cookies[i].trim().split("="); 
      if (cookie[0] == 'FirstName') { 
       document.form1.FirstName.value = cookie[1]; 
      } 
      if (cookie[0] == 'LastName') { 
       document.form1.LastName.value = cookie[1]; 
      } 
     } 
    } 
} 

我也檢查了cookie的名字,因爲可能還有其他的cookie在飛來飛去。 :-)

+0

這正是我所需要的,但仍然不會工作看到您的樣本 – Blnukem

+0

hm修改後的代碼,它適用於我。這是原始的HTML代碼還是您可能在頁面上有多個表單?當你按下按鈕時,你能否在瀏覽器中檢查cookie是否設置正確? – AlvaHenrik

+0

對我來說,它設置cookie很好,但是當你刷新它應該自動填寫表單,它不是。這是我遇到的問題。 – Blnukem