How to get and set form element values with jQuery
Posted November 13th, 2008 in Javascript
jQuery is a Javascript framework which can simplify coding Javascript for a website and removes a lot of cross browser compatibility issues. This post looks at how to get and set the values of HTML form elements with jQuery.
Getting a form value with jQuery
To get a form value with jQuery use the val() function. Let's say we have a form like this, using an id for each form element:
<input name="foo" id="foo" type="text">
<select name="foo" id="bar">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
We can display an alert for the values of "foo" and "bar" as easily this:
window.alert( $('#foo').val() );
window.alert( $('#bar').val() );
If we're using the name only and not specifying an id, the jQuery to get the form values would be this:
window.alert( $('[name=foo]').val() );
window.alert( $('[name=bar]').val() );
If you have a group of radio buttons and want to get the selected button, the code is slightly different because they all have the same name. Using the above code examples will show the value for the first radio button on the form with that name. To find out the value of the checked one, do this instead:
HTML:
<input type="radio" name="baz" value="x"> <input type="radio" name="baz" value="y"> <input type="radio" name="baz" value="z">
jQuery:
window.alert($('input[name=baz]:checked').val());
Setting a form value with jQuery
You can set the form values with jQuery using the same val() function but passing it a new value instead. Using the same example forms above, you'd do this for the text input and select box:
$('#foo').val('this is some example text');
$('#bar').val('3');
OR
$('[name=foo]').val('this is some example text');
$('[name=bar]').val('3');
Using the above for a radio button will change the actual value of the radio button rather than changing the one that is selected. To change the radio button that is selected you'd do this:
$('input[name="baz"]')[0].checked = true;
[0] would set the first one checked, [1] would set the second one checked and so on.
Related posts:
- Running a function with jQuery when the window is resized (Tuesday, August 25th 2009)
- Dynamically get and set an elements content with jQuery (Sunday, January 11th 2009)
- Adding, removing and checking if an element has a CSS class with jQuery (Tuesday, December 16th 2008)
- How to check and uncheck a checkbox with jQuery (Friday, November 14th 2008)
- Style an HTML form input with CSS and jQuery (Saturday, July 26th 2008)
- Clearing the default value of text input with Javascript (Tuesday, June 17th 2008)
Subscribe / Follow / Email / Bookmark / Share
Use the buttons below to subscribe to my RSS feed to be notified next time something is posted, share this post with others, or subscribe by email to have my posts sent in a daily email, follow me on Twitter or follow me on Facebook.
At least one new post is usually made every day. See my posting schedule for more details.
