加载中...

change()


概述    .change( handler )

返回值:jQuery

描述: 为JavaScript 的 "change" 事件绑定一个处理函数,或者触发元素上的 "change" 事件。

  • V : 1.0.change( handler )

    • handler
      类型: Function( Event eventObject )
      每当事件触发时执行的一个函数。
  • V : 1.4.3.change( [eventData ], handler )

    • eventData
      类型: Anything
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler
      类型: Function( Event eventObject )
      每当事件触发时执行的一个函数。
  • V : 1.0.change()

    • 这个方法不接受任何参数

这个函数的前两个用法是 .bind('change', handler) 的快捷方式,第3个不带参数的用法是 .trigger('change') 的快捷方式。

一个元素的值改变的时候将触发change事件。此事件仅限用于<input>元素,<textarea><select>元素。对于下拉选择框,复选框和单选按钮,当用户用鼠标作出选择,该事件立即触发,但对于其他类型的input元素,该事件触发将推迟,直到元素失去焦点才会触点。

举例来说,请看下面的HTML:

  1. <form>
  2. <input class="target" type="text" value="Field 1" />
  3. <select class="target">
  4. <option value="option1" selected="selected">Option 1</option>
  5. <option value="option2">Option 2</option>
  6. </select>
  7. </form>
  8. <div id="other">
  9. Trigger the handler
  10. </div>

事件处理函数可以绑定到文本输入和下拉选择框:

  1. $('.target').change(function() {
  2. alert('Handler for .change() called.');
  3. });

现在,当下拉菜单中第二个选项被选择,警报提示框显示。如果你改变字段中的文本,然后点击其他地方,警报提示框也会显示。如果该字段失去焦点 没有改变内容,该事件不会触发。应用不带参数的.change(),我们可以手动触发这个事件:

  1. $('#other').click(function() {
  2. $('.target').change();
  3. });

这些代码执行后,点击Trigger the handler也弹出警报提示框提醒消息。该信息将显示两次,因为两个表单元素都绑定了change事件处的理函数。

从jQuery 1.4开始 change事件在Internet Explorer中是冒泡的,这个事件和其他浏览器中表现是一致的。

注意: 使用JavaScript改变输入元素的值,例如使用.val(),将不会触发该事件。

Additional Notes(其他注意事项):

  • .change()方法只是作为.on( "change", handler )的一个速记写法,移除该事件可以使用.off( "change" )

示例

实例

为 select 元素添加 change 事件,将选中的项目显示在 div 中。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. div { color:red; }
  6. </style>
  7. <script src="http://code.jquery.com/jquery-latest.js"></script>
  8. </head>
  9. <body>
  10. <select name="sweets" multiple="multiple">
  11. <option>Chocolate</option>
  12. <option selected="selected">Candy</option>
  13. <option>Taffy</option>
  14. <option selected="selected">Caramel</option>
  15. <option>Fudge</option>
  16. <option>Cookie</option>
  17. </select>
  18. <div></div>
  19. <script>
  20. $("select").change(function () {
  21. var str = "";
  22. $("select option:selected").each(function () {
  23. str += $(this).text() + " ";
  24. });
  25. $("div").text(str);
  26. })
  27. .change();
  28. </script>
  29. </body>
  30. </html>

运行一下

实例

所有文本输入元素添加一个的有效性测试:

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


还没有评论.