jquery.form.js用法之清空form的方法

  本段代码摘取自jquery.form.js中,由于觉得该方法的使用性非常强,同时也可独立拿出来使用。

  该段代码言简意赅可以很好的作为学习参考。

  

复制代码 代码如下:

  /**

  * Clears the form data. Takes the following actions on the form's input fields:

  * - input text fields will have their 'value' property set to the empty string

  * - select elements will have their 'selectedIndex' property set to -1

  * - checkbox and radio inputs will have their 'checked' property set to false

  * - inputs of type submit, button, reset, and hidden will *not* be effected

  * - button elements will *not* be effected

  */

  $.fn.clearForm = function(includeHidden) {

  return this.each(function() {

  $('input,select,textarea', this).clearFields(includeHidden);   //this表示设置上下文环境,有多个表单时只作用调用的表单

  });

  };

  $.fn.clearFields = $.fn.clearInputs = function(includeHidden) {

  var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list

  return this.each(function() {

  var t = this.type, tag = this.tagName.toLowerCase();

  if (re.test(t) || tag == 'textarea') {

  this.value = '';

  }

  else if (t == 'checkbox' || t == 'radio') {

  this.checked = false;

  }

  else if (tag == 'select') {

  this.selectedIndex = -1;

  }

  else if (t == "file") {

  if (/MSIE/.test(navigator.userAgent)) {

  $(this).replaceWith($(this).clone(true));

  } else {

  $(this).val('');

  }

  }

  else if (includeHidden) {

  // includeHidden can be the value true, or it can be a selector string

  // indicating a special test; for example:

  // $('#myForm').clearForm('.special:hidden')

  // the above would clean hidden inputs that have the class of 'special'

  if ( (includeHidden === true && /hidden/.test(t)) ||

  (typeof includeHidden == 'string' && $(this).is(includeHidden)) ) {

  this.value = '';

  }

  }

  });

  };