2017-08-28 115 views
0

我希望将cookie应用于两个输入的默认值。 我正在使用GitHub的jscookie,并且最好还是使用jscookie来回答。 我有一个默认值为零的输入,我希望它在第一次回答之后默认为它们存储的cookie。例如。使用Cookie到<input>与js-cookie

<input type="text" name="changeme" value="0"> 
<div id="submit">Submit</div> 

的JavaScript/JQuery的与jscookie插件:

$(document).ready(function() { 
     if (Cookies.get("inputval") != undefined) { 
       $('input[name="changeme"]').val(Cookies.get("inputval")); 
     } 
     $('#submit').on('click', function() { 
       var inval = $('input[name="changeme"]').val(); 
       Cookies.set("inputval", inval { expires: 1, path: "" }); 
     }); 
}); 

所以重新加载页面后,我期望的值是什么最初进入。 Cookie被保存,但它们未被应用于输入。我已经尝试过大部分我能想到的语法的变体,没有任何帮助。预先感谢回复!

+0

这是一个语法错误:'inval {到期:1,路径: “”}'。检查您的控制台是否有日志和错误。我想你错过了一个逗号,它应该是:'inval,{expires:1,path:“”}' – BenM

回答

0

此行是造成语法错误,因为你已经错过了一个逗号:

Cookies.set("inputval", inval { expires: 1, path: "" }); 
          ^-- missing ',' here 

尝试以下操作:

$(function() { 
    if(Cookies.get('inputval')) 
    { 
     $('input[name="changeme"]').val(Cookies.get('inputval')); 
    } 

    $('#submit').on('click', function() { 
     Cookies.set("inputval", $('input[name="changeme"]').val(), { expires: 1, path: "" }); 
    }); 
}); 
+0

谢谢。这似乎工作得很好,但是我添加了第二个输入并相应地调整了代码,突然之间,我将95输入input1和88输入到input2中,在同一个会话中再次输入输入将导致它们都为88,并且在重新加载之后尽管input1的cookie仍然是95,input2的cookie仍然是88,但input1是88,input2是空的。谢谢:) –

+0

没关系。出于某种原因,它不能像'.click'一样工作,我需要一个'.on('click')',尽管它没有被动态插入。尽管如此,感谢您的回应! –