Reputation: 422
bit of a jQuery noob but learning quickly thanks to StackOverflow.
Can anyone give me code that will get data from a form and write it out to a cookie (not a session cookie) using jQuery. I am loading the jQuery cookie plugin from here:
https://github.com/carhartl/jquery-cookie
I'd also like to know if I have to load my code when the DOM is ready as previously with php I loaded cookies first thing. Can't get my head round the DOM yet.
OK here is the current code, thanks to reply below. I can't get the cookie working though but the alert works fine when uncommented:
<form id="myform">
<fieldset>
<h3>Search</h3>
<p>
<label>Your search *</label>
<input type="text" id="mysearch" pattern="[a-zA-Z ]{5,}" maxlength="30" />
</p>
<fieldset>
<input type="range" id="range" min="1" max="30" value="10" />
<input type="range" id="range2" min="30" max="9000" value="2000" />
</fieldset>
<button id="subbtn" type="submit">Submit form</button>
<button type="reset">Reset</button>
</fieldset>
</form>
$(function() {
// initialize tooltip
$(".imgwrap").tooltip({
//$(".tooltip").tooltip({ effect: 'slide'});
// tweak the position
offset: [10, 2],
// use the "slide" effect
effect: 'slide'
// add dynamic plugin with optional configuration for bottom edge
}).dynamic({ bottom: { direction: 'down', bounce: true } });
});
//this one loads the form validator
$("#myform").validator();
//this one for the slider
$(":range").rangeinput();
$("#subbtn").on("click", function () {
// alert("Cookie!");
$.cookie('Searchitem', $("#mysearch").val(), { expires: 365 });
});
Any ideas why my cookie is not setting? Browser is set to accept and I'm debugging with Firebug.
Upvotes: 0
Views: 3535
Reputation: 3110
A persistent cookie is the same as a session cookie except it has an expiration date so it hangs around.
This will write the value of the text input to a cookie that expires in 365 days:
<input id="txt" type="text" value="foo" />
<input id="btn" type="button" value="write cookie" />
...
$(document).ready(function () {
$("#btn").on("click", function () {
$.cookie('myCookie', $("#txt").val(), { expires: 365 });
});
});
EDIT
New code per updated question:
$(function () {
// initialize tooltip
$(".imgwrap").tooltip({
//$(".tooltip").tooltip({ effect: 'slide'});
// tweak the position
offset: [10, 2],
// use the "slide" effect
effect: 'slide'
// add dynamic plugin with optional configuration for bottom edge
}).dynamic({ bottom: { direction: 'down', bounce: true} });
//this one loads the form validator
$("#myform").validator();
//this one for the slider
$(":range").rangeinput();
$("#subbtn").on("click", function () {
// alert("Cookie!");
$.cookie('Searchitem', $("#mysearch").val(), { expires: 365 });
});
});
Upvotes: 1
Reputation: 3040
I'm assuming from your tagging you want to submit the form using GET. You could use the method described here to extract the URL string value.
Then it's just a matter of setting the value to the cookie:
$.cookie('mycookie', getParameterByName('varname'), {expires: 100});
You can check the value of the cookie like so:
console.log($.cookie('mycookie'));
Upvotes: 0