Get the current value of the first element in the set of matched elements or set the value of every matched element.
Contents:
.val()
.val( value )
-
.val( value )
-
.val( function )
The
.val()
method is primarily used to get the values of form elements such as
input
,
select
and
textarea
. When called on an empty collection, it returns
undefined
.
When the first element in the collection is a
select-multiple
(i.e., a
select
element with the
multiple
attribute set),
.val()
returns an array containing the value of each selected option.
As of jQuery 3.0
, if no options are selected, it returns an empty array;
prior to jQuery 3.0
, it returns
null
.
For selects, checkboxes and radio buttons, you can use
:checked
to select the right elements. For example:
$( "select#foo option:checked" ).val();
$( "input[type=checkbox][name=bar]:checked" ).val();
$( "input[type=radio][name=baz]:checked" ).val();
Note:
At present, using
.val()
on
<textarea>
elements strips carriage return characters from the browser-reported value. When this value is sent to the server via XHR, however, carriage returns are preserved (or added by browsers which do not include them in the raw value). A workaround for this issue can be achieved using a valHook as follows:
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
var singleValues = $( "#single" ).val();
var multipleValues = $( "#multiple" ).val() || [];
$( "p" ).html( "<b>Single:</b> " + singleValues +
" <b>Multiple:</b> " + multipleValues.join( ", " ) );
$( "select" ).on( "change", displayVals );
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<input type="text" value="some text">
.on( "keyup", function() {
var value = $( this ).val();
This method is typically used to set the values of form fields.
val()
allows you to pass an array of element values. This is useful when working on a jQuery object containing elements like
<input type="checkbox">
,
<input type="radio">
, and
<option>
s inside of a
<select>
. In this case, the
input
s and the
option
s having a
value
that matches one of the elements of the array will be checked or selected while those having a
value
that doesn't match one of the elements of the array will be unchecked or unselected, depending on the type. In the case of
<input type="radio">
s that are part of a radio group and
<select>
s, any previously selected element will be deselected.
Setting values using this method (or using the native
value
property) does not cause the dispatch of the
change
event. For this reason, the relevant event handlers will not be executed. If you want to execute them, you should call
.trigger( "change" )
after setting the value.
The
.val()
method allows setting the value by passing in a function. As of jQuery 1.4, the function is passed two arguments, the current element's index and its current value:
This example removes leading and trailing whitespace from the values of text inputs with a "tags" class.
Example 1
Set the value of an input box.
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<input type="text" value="click a button">
$( "button" ).on( "click", function() {
var text = $( this ).text();
$( "input" ).val( text );
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<p>Type something and then click or tab out of the input.</p>
<input type="text" value="type something">
$( "input" ).on( "blur", function() {
$( this ).val(function( i, val ) {
return val.toUpperCase();
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<select id="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
<input type="checkbox" name="checkboxname" value="check1"> check1
<input type="checkbox" name="checkboxname" value="check2"> check2
<input type="radio" name="r" value="radio1"> radio1
<input type="radio" name="r" value="radio2"> radio2
$( "#single" ).val( "Single2" );
$( "#multiple" ).val([ "Multiple2", "Multiple3" ]);
$( "input").val([ "check1", "check2", "radio1" ]);
Web hosting by Digital Ocean
|
CDN by Fastly
|
Powered by WordPress