正如其他人指出的那样,我认为您应该重新考虑是否需要blank表格。
但是,如果您确实需要该功能,这是一种方法:
简单的 JavaScript:
function resetForm(form) {
// clearing inputs
var inputs = form.getElementsByTagName('input');
for (var i = 0; i<inputs.length; i++) {
switch (inputs[i].type) {
// case 'hidden':
case 'text':
inputs[i].value = '';
break;
case 'radio':
case 'checkbox':
inputs[i].checked = false;
}
}
// clearing selects
var selects = form.getElementsByTagName('select');
for (var i = 0; i<selects.length; i++)
selects[i].selectedIndex = 0;
// clearing textarea
var text= form.getElementsByTagName('textarea');
for (var i = 0; i<text.length; i++)
text[i].innerHTML= '';
return false;
}
请注意,我注释掉了清除的情况hidden
输入。大多数时候,这是没有必要的。
为此,您需要从以下位置调用该函数onclick
按钮的处理程序(或其他方式),例如像这样:
<input type='reset' value='Reset' name='reset' onclick="return resetForm(this.form);">
你可以在这里测试一切jsFiddle http://jsfiddle.net/m6bcs/.
如果您在项目中使用 jQuery,则可以使用更少的代码来完成此操作(并且无需更改 HTML):
jQuery(function($) { // onDomReady
// reset handler that clears the form
$('form[name="myform"] input:reset').click(function () {
$('form[name="myform"]')
.find(':radio, :checkbox').removeAttr('checked').end()
.find('textarea, :text, select').val('')
return false;
});
});
另外,请注意,我没有清除values隐藏的输入、复选框和单选按钮。
玩这个here http://jsfiddle.net/fmTDY/.