當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JQuery .change()用法及代碼示例


用法
.change( handler ) => jQuery

說明:將事件處理程序綁定到 "change" JavaScript 事件,或在元素上觸發該事件。

  • 添加的版本:1.0.change( handler )

    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.4.3.change( [eventData ], handler )

    • eventData
      類型:Anything
      包含將傳遞給事件處理程序的數據的對象。
    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.0.change()

    • 此簽名不接受任何參數。

此方法是前兩個變體中.on( "change", handler ) 和第三個變體中.trigger( "change" ) 的快捷方式。

change 事件在其值更改時發送到元素。此事件僅限於 <input> 元素、<textarea> 框和 <select> 元素。對於選擇框、複選框和單選按鈕,當用戶使用鼠標進行選擇時會立即觸發該事件,但對於其他元素類型,該事件會延遲到元素失去焦點為止。

例如,考慮 HTML:

<form>
  <input class="target" type="text" value="Field 1">
  <select class="target">
    <option value="option1" selected="selected">Option 1</option>
    <option value="option2">Option 2</option>
  </select>
</form>
<div id="other">
  Trigger the handler
</div>

事件處理程序可以綁定到文本輸入和選擇框:

$( ".target" ).change(function() {
  alert( "Handler for .change() called." );
});

現在,當從下拉列表中選擇第二個選項時,將顯示警報。如果您更改字段中的文本然後單擊離開,它也會顯示。但是,如果該字段在內容未更改的情況下失去焦點,則不會觸發該事件。要手動觸發事件,請應用不帶參數的.change()

$( "#other" ).click(function() {
  $( ".target" ).change();
});

這段代碼執行後,點擊觸發處理程序也會提醒消息。該消息將顯示兩次,因為處理程序已綁定到change兩個表單元素上的事件。

從 jQuery 1.4 開始,change 事件在 Internet Explorer 中冒泡,其行為與其他現代瀏覽器中的事件一致。

注意:使用 JavaScript 更改輸入元素的值,使用.val()例如,不會觸發事件。

其他注意事項:

  • 由於 .change() 方法隻是 .on( "change", handler ) 的簡寫,因此可以使用 .off( "change" ) 進行分離。

例子:

將更改事件附加到獲取每個選定選項的文本並將它們寫入 div 的選擇。然後它觸發初始文本繪製的事件。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>change demo</title>
  <style>
  div {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<select name="sweets" multiple="multiple">
  <option>Chocolate</option>
  <option selected="selected">Candy</option>
  <option>Taffy</option>
  <option selected="selected">Caramel</option>
  <option>Fudge</option>
  <option>Cookie</option>
</select>
<div></div>
 
<script>
$( "select" )
  .change(function () {
    var str = "";
    $( "select option:selected" ).each(function() {
      str += $( this ).text() + " ";
    });
    $( "div" ).text( str );
  })
  .change();
</script>
 
</body>
</html>

演示:

為所有文本輸入元素添加有效性測試:

$( "input[type='text']" ).change(function() {
  // Check input( $( this ).val() ) for validity here
});

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .change()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。