本段代码摘取自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 = '';
}
}
});
};
