2014-01-23 67 views
0

刚刚开始,我对javascript非常陌生,对任何愚蠢的评论或提前发生的明显错误表示歉意。使用javascript读取和使用cookie值

这是我目前正在工作:

<div id="currency_select"> 
    <form action="/Default.asp?" method="post" name="CurrencyChoice"> 
     <select onchange="this.form.submit()" name="ER_ID"> 
      <option value="3">EUR</option> 
      <option value="2">GBP</option> 
     </select> 
     <script type="text/javascript"> 
      document.forms['CurrencyChoice'].elements['ER_ID'].value = ''; 
     </script> 
    </form> 
</div> 

我想读从以下饼干“ER%5fID”的值,然后在value=''域插入以上。

说实话,我只是在提高损失,因为我不确定最好的方法是读取cookie的值,然后将其值插入我想要的位置。

再次为任何新手错误道歉。我不得不在飞行中学习JavaScript,并且必须在几天前开始。

所以我花了很多时间相当今天试图找出我需要什么,我认为是这样的:

function getCookie(c_name) 
{ 
    var i,x,y,ARRcookies=document.cookie.split(";"); 

    for (i=0;i<ARRcookies.length;i++) 
    { 
     x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
     y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
     x=x.replace(/^\s+|\s+$/g,""); 
     if (x==c_name) 
     { 
      return unescape(y); 
     } 
    } 
} 

但是我仍然不确定如何有内相应的结果返回价值领域?

在此先感谢您的帮助。

+0

或者如果你不在乎旧的IE,只需要ER_ID.value =''... – dandavis

+1

google“setCookie”,然后如果需要的话,“getCookie” – dandavis

+0

如果你在意你可能要考虑使用localStorage关于网站性能... – dandavis

回答

0

对不起,我只是不在意重写这个,W3Scools tutorial on cookies是相当comprihensive,甚至给你完全完整的功能,读取和写入cookie。

这也是一般JS学习的好资源,所以你一定要检查一下。

的代码有如下:

function setCookie(cname,cvalue,exdays) 
{ 
var d = new Date(); 
d.setTime(d.getTime()+(exdays*24*60*60*1000)); 
var expires = "expires="+d.toGMTString(); 
document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

function getCookie(cname) 
{ 
var name = cname + "="; 
var ca = document.cookie.split(';'); 
for(var i=0; i<ca.length; i++) 
    { 
    var c = ca[i].trim(); 
    if (c.indexOf(name)==0) return c.substring(name.length,c.length); 
    } 
return ""; 
} 

和用法是:

function checkCookie() 
{ 
var username=getCookie("username"); 
if (username!="") 
    { 
    alert("Welcome again " + username); 
    } 
else 
    { 
    username = prompt("Please enter your name:",""); 
    if (username!="" && username!=null) 
    { 
    setCookie("username",username,365); 
    } 
    } 
} 

但你可以阅读更多的W3Scools自己的网站。

编辑:因此,这里是在您的特定情况下所承诺的全功能样品:

<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=9" /> 
     <title>Cookie Example</title> 
     <script type="text/javascript"> 

     //adds the [String].trim() method to the [String] object if missing 
     if(!String.prototype.trim) { 
      String.prototype.trim = function() { 
      return this.replace(/^\s+|\s+$/g,''); 
      }; 
     } 

      var cookieName = "ER_ID"; 

      function setCookie(cname,cvalue,exdays) 
      { 
       var d = new Date(); 
       d.setTime(d.getTime()+(exdays*24*60*60*1000)); 
       var expires = "expires="+d.toGMTString(); 
       document.cookie = cname + "=" + cvalue + "; " + expires; 
      } 

      function getCookie(cname) 
      { 
       var name = cname + "="; 
       var ca = document.cookie.split(';'); 
       for(var i=0; i<ca.length; i++){ 
        var c = ca[i].trim(); 
        if (c.indexOf(name)==0) return c.substring(name.length,c.length); 
       } 
       return ""; 
      } 

      function setOptionFromCookie() { 

       var select = document.getElementById('ER_ID'), index, value = getCookie(cookieName); 

       index = select.options.length; 
       while(index--) { 
        if(select.options[index].value == value) { 
         break; 
        } 
       } 

       if(index > -1) { 
        select.selectedIndex = index; 
       } else { 
        alert('no such value in selection'); 
       } 
      } 

      function setValue() { 
       var value = document.getElementById('value').value; 
       setCookie(cookieName, value, 365); 
      } 
     </script> 
    </head> 
    <body> 
     The value that will go into the cookie "ER_ID": <input id="value" value="2" /> 
     <br/> 
     <button onclick="setValue()">Set Cookie</button> 
     <button onclick="setOptionFromCookie()">Set Option from cookie</button> 
     <hr /> 
     <div id="currency_select"> 
      <form action="/Default.asp?" method="post" name="CurrencyChoice"> 
       <select onchange="this.form.submit()" id="ER_ID" name="ER_ID"> 
        <option value="1" selected="selected">Select Currency</option> 
        <option value="3">EUR</option> 
        <option value="2">GBP</option> 
       </select> 
       <script type="text/javascript"> 

       </script> 
      </form> 
     </div> 
    </body> 
</html> 

因为我没有在我的浏览器,比如一个cookie我也做了一个可能性,为你设置cookie 。但它应该很容易理解。只需首先设置cookie,然后按下“从Cookie设置选项”即可读取cookie并根据该值设置选项。

+0

我很确定我没有要求你为我写任何东西,也是我花了W3School的最后三天包括这一个的各种JS相关的基础知识。但是,谢谢指出显而易见的。 道歉,如果我的知识缺乏是一个烦恼... –

+0

@Zen你误解,阅读和写作饼干我会给的答案是一样的在W3Scools(没有意义重写存在的东西,我使用相同的我自己),但如果你仍然不知道如何使用它们,那么我会重新为你解答你的具体问题。 – Idra

+0

@ZenAz这里提供的是一个全功能的示例,使用您的HTML(大部分)使用与W3Schools相同的功能,顺便说一句,下一次你问什么时候注意你知道的东西! – Idra