当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .val()用法及代码示例


获取匹配元素集中第一个元素的当前值或设置每个匹配元素的值。

用法一

.val() => String or Number or Array

说明:获取匹配元素集中第一个元素的当前值。

  • 添加的版本:1.0.val()

    • 此方法不接受任何参数。

.val() 方法主要用于获取表单元素的值,例如 inputselecttextarea 。在空集合上调用时,它返回 undefined

当集合中的第一个元素是select-multiple(即,一个select元素与multiple属性集),.val()返回一个数组,其中包含每个选定选项的值。从 jQuery 3.0 开始,如果没有选择任何选项,则返回一个空数组;在 jQuery 3.0 之前, 它返回null.

对于选择、复选框和单选按钮,您可以使用:checked 来选择正确的元素。例如:

// Get the value from the selected option in a dropdown
$( "select#foo option:checked" ).val();
 
// Get the value from a dropdown select directly
$( "select#foo" ).val();
 
// Get the value from a checked checkbox
$( "input[type=checkbox][name=bar]:checked" ).val();
 
// Get the value from a set of radio buttons
$( "input[type=radio][name=baz]:checked" ).val();

注意:目前,使用.val()<textarea>元素从browser-reported 值中去除回车符。但是,当这个值通过 XHR 发送到服务器时,会保留回车(或由不包含在原始值中的浏览器添加)。可以使用 valHook 来解决此问题,如下所示:

$.valHooks.textarea = {
  get: function( elem ) {
    return elem.value.replace( /\r?\n/g, "\r\n" );
  }
};

例子:

从单选中获取单个值,从多选中获取值数组并显示它们的值。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>val demo</title>
  <style>
  p {
    color: red;
    margin: 4px;
  }
  b {
    color: blue;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p></p>
 
<select id="single">
  <option>Single</option>
  <option>Single2</option>
</select>
 
<select id="multiple" multiple="multiple">
  <option selected="selected">Multiple</option>
  <option>Multiple2</option>
  <option selected="selected">Multiple3</option>
</select>
 
<script>
function displayVals() {
  var singleValues = $( "#single" ).val();
  var multipleValues = $( "#multiple" ).val() || [];
  // When using jQuery 3:
  // var multipleValues = $( "#multiple" ).val();
  $( "p" ).html( "<b>Single:</b> " + singleValues +
    " <b>Multiple:</b> " + multipleValues.join( ", " ) );
}
 
$( "select" ).change( displayVals );
displayVals();
</script>
 
</body>
</html>

演示:

查找输入框的值。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>val demo</title>
  <style>
  p {
    color: blue;
    margin: 8px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<input type="text" value="some text">
<p></p>
 
<script>
$( "input" )
  .keyup(function() {
    var value = $( this ).val();
    $( "p" ).text( value );
  })
  .keyup();
</script>
 
</body>
</html>

演示:

用法二

.val( value ) => jQuery

说明:设置匹配元素集合中每个元素的值。

  • 添加的版本:1.0.val( value )

    • value
      类型:StringNumberArray
      与每个匹配元素的值对应的文本字符串、数字或字符串数组,以设置为选中/选中。
  • 添加的版本:1.4.val( function )

    • function
      类型:Function(Integer 索引,String 值)=> String
      返回要设置的值的函数。 this 是当前元素。接收集合中元素的索引位置和旧值作为参数。

此方法通常用于设置表单字段的值。

val() 允许您传递元素值数组。这在处理包含 <input type="checkbox"><input type="radio"><option> 等元素的 jQuery 对象时非常有用,这些元素包含在 <select> 中。在这种情况下,将检查或选择具有与数组元素之一匹配的 valueinputoption,而具有与其中一个元素不匹配的 valuevalue根据类型,数组将被取消选中或取消选中。对于属于无线电组的 <input type="radio"><select> 的情况,将取消选择任何先前选择的元素。

使用此方法(或使用本机 value 属性)设置值不会导致 change 事件的调度。因此,不会执行相关的事件处理程序。如果要执行它们,则应在设置值后调用.trigger( "change" )

.val() 方法允许通过传入函数来设置值。从 jQuery 1.4 开始,该函数被传递两个参数,当前元素的索引和它的当前值:

$( "input[type=text].tags" ).val(function( index, value ) {
  return value.trim();
});

此示例使用 "tags" 类从文本输入的值中删除前导和尾随空格。

例子:

设置输入框的值。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>val demo</title>
  <style>
  button {
    margin: 4px;
    cursor: pointer;
  }
  input {
    margin: 4px;
    color: blue;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div>
  <button>Feed</button>
  <button>the</button>
  <button>Input</button>
</div>
<input type="text" value="click a button">
 
<script>
$( "button" ).click(function() {
  var text = $( this ).text();
  $( "input" ).val( text );
});
</script>
 
</body>
</html>

演示:

使用函数参数来修改输入框的值。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>val demo</title>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<p>Type something and then click or tab out of the input.</p>
<input type="text" value="type something">
 
<script>
$( "input" ).on( "blur", function() {
  $( this ).val(function( i, val ) {
    return val.toUpperCase();
  });
});
</script>
 
</body>
</html>

演示:

设置单选、多选、复选框和单选按钮。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>val demo</title>
  <style>
  body {
    color: blue;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<select id="single">
  <option>Single</option>
  <option>Single2</option>
</select>
 
<select id="multiple" multiple="multiple">
  <option selected="selected">Multiple</option>
  <option>Multiple2</option>
  <option selected="selected">Multiple3</option>
</select>
 
<br>
<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
 
<script>
$( "#single" ).val( "Single2" );
$( "#multiple" ).val([ "Multiple2", "Multiple3" ]);
$( "input").val([ "check1", "check2", "radio1" ]);
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .val()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。