SHARE
Facebook X Pinterest WhatsApp

JavaScript Class: How Can I Set A Cookie Based On A User’s Selection On A Form?

Written By
thumbnail
Scott Clark
Scott Clark
Jun 18, 2010

As a web developer, you may want to allow your site’s visitors to make a choice on a form, then direct them to a specific page based on their selection. This tutorial will show you how to, for example, allow your users to select the type of mobile device they are using, then go to the page for that device thereafter, based on their selection–using cookies and JavaScript!


In our recent article entitled How Can I Detect the iPhone & iPad’s User Agent? we discussed how to detect if a user is accessing your web page using an iPhone or iPad, and redirect that user to a page based on their specific device. In this article, we’re going to show you how to, instead, allow the user to specify their device on their own via a small form on your page, and based on their selection, they will be directed to the specific page for their device. Once they have made their selection, whenever they revisit your page, they will automatically be redirected to that page.

What Are Cookies, and Why Should I Care?


Cookies

is the name given to the data that can be stored in your web browser whenever you visit a website. Although that may sound like a privacy violation, the type of data that can be stored is limited, and can

t be shared with other sites, so you

re pretty safe, and so are your site

s visitors. Most sites use cookies for tracking where you

ve been on their site, so you can be shown new posts, new content, etc. based on the time of your last visit. In our example, we will simply be storing the user

s selection from the form they filled out on your page. It will look like this:


Please choose your mobile device:
iPhone
iPad
Android
Palm


Note that you can choose the names of the selections, as well as the field name, but you will need to also change those names (and URLs) within the JavaScript file, which we will get into next.

How Do I Use JavaScript To Do That?

Rather than have you do all the dirty work, we have a JavaScript file that you can attach to your web page that does it all for you. You can download all the files used in this tutorial here. If you open the cookieRedirect.js file, this is what you will see:

var expDays = 30;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (“;”, offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + “=”;
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(” “, i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + “=” + escape (value) +
((expires == null) ? “” : (“; expires=” + expires.toGMTString())) +
((path == null) ? “” : (“; path=” + path)) +
((domain == null) ? “” : (“; domain=” + domain)) +
((secure == true) ? “; secure” : “”);
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() – 1);
var cval = GetCookie (name);
document.cookie = name + “=” + cval + “; expires=” + exp.toGMTString();
}
var favorite = GetCookie(‘device’);
if (favorite != null) {
switch (favorite) {
case ‘iPhone’ : 	url = ‘iphone.html’; // change these!
	     	break;
case ‘iPad’ : 	url = ‘ipad.html’;
	     	break;
case ‘Android’ : url = ‘android.html’;
		break;
case ‘Palm’ : url = ‘palm.html’;
		break;
}
window.location.href = url;
}

Before we go any further, you can see this script in action here. As you can see, once you have made your selection and have refreshed the page, you are automatically taken to the appropriate page. Within the script, the only things you will need to change are the names and URLs. For instance, to change the selection from “device” to “animals” you would simply make those changes within the script as shown:

var favorite = GetCookie(‘animal’); // we changed this
if (favorite != null) {
switch (favorite) {
case ‘cat’ : 	url = ‘cat.html’; // and this
	     	break;
case ‘dog’ : 	url = ‘dog.html’; // and this
	     	break;
case ‘gerbil’ : url = ‘gerbil.html’; // and this
		break;
case ‘gopher’ : url = ‘gopher.html’; // and finally this
		break;
}

And in our form shown above, we changed it to the following:


<form>
<table><tr><td>
Please choose your Favorite Pet:<br>
<input type=checkbox name=”cat” onClick=”SetCookie(‘animal’, this.name, exp);”>Cat<br>
<input type=checkbox name=”dog” onClick=”SetCookie(‘animal’, this.name, exp);”>Dog<br>
<input type=checkbox name=”gerbil” onClick=”SetCookie(‘animal’, this.name, exp);”>Gerbil<br>
<input type=checkbox name=”gopher” onClick=”SetCookie(‘animal’, this.name, exp);”>Gopher<br>
</td></tr>
</table>
</form>

This little JavaScript tidbit can be used to save the choices your visitors make, and use that selection to save them the hassle of having to make their selection again. Useful for mobile sites, hobby sites, pet sites–the list is infinite.

Recommended for you...

The Revolutionary ES6 Rest and Spread Operators
Rob Gravelle
Aug 23, 2022
Ahead of Time (AOT) Compilation in Angular
Tariq Siddiqui
Aug 16, 2022
Converting a JavaScript Object to a String
Rob Gravelle
Aug 14, 2022
Understanding Primitive Type Coercion in JavaScript
Rob Gravelle
Jul 28, 2022
HTML Goodies Logo

The original home of HTML tutorials. HTMLGoodies is a website dedicated to publishing tutorials that cover every aspect of being a web developer. We cover programming and web development tutorials on languages and technologies such as HTML, JavaScript, and CSS. In addition, our articles cover web frameworks like Angular and React.JS, as well as popular Content Management Systems (CMS) that include WordPress, Drupal, and Joomla. Website development platforms like Shopify, Squarespace, and Wix are also featured. Topics related to solid web design and Internet Marketing also find a home on HTMLGoodies, as we discuss UX/UI Design, Search Engine Optimization (SEO), and web dev best practices.

Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.