我想清除一个表单中的所有输入和文本区域字段。当使用带有 "reset "类的输入按钮时,它的工作原理如下。
$(".reset").bind("click", function() {
$("input[type=text], textarea").val("");
});
这将清除页面上的所有字段,而不仅仅是表单中的字段。我的选择器对于实际复位按钮所在的表单会是什么样子?
适用于jQuery 1.6+。
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.prop('checked', false)
.prop('selected', false);
适用于jQuery < 1.6:
$(':input','#myform')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
请看这个帖子。 https://stackoverflow.com/questions/680241/blank-out-a-form-with-jquery
或
$('#myform')[0].reset();
正如jQuery建议。
要检索和改变DOM属性,如表单元素的 "checked"、"selected "或 "disabled "状态,使用.prop()方法。
如果你使用选择器并将值设为空值,这不是重置表单,而是将所有字段设为空。 重置是为了使表单在从服务器端加载表单后,在用户进行任何编辑操作之前保持原样。 如果有一个名称为"username"的输入,并且该用户名已被预先填入。 并且该用户名是从服务器端预先填写的,那么本页的大多数解决方案将从输入中删除该值,而不是将其重置为用户修改前的值。 如果你需要重置表单,请使用以下方法。
$('#myform')[0].reset();
如果你不需要重置表单,而是用一些值来填充所有的输入,例如空值,那么你可以使用其他评论中的大部分解决方案。
如果有人还在看这个帖子,这里有一个最简单的解决方案,不是用jQuery,而是用纯JavaScript。 如果你的输入字段在表单中,有一个简单的JavaScript重置命令。
document.getElementById("myform").reset();
更多关于它的信息在这里。 http://www.w3schools.com/jsref/met_form_reset.asp
干杯!
为什么需要用任何JavaScript来完成呢?
<form>
<!-- snip -->
<input type="reset" value="Reset"/>
</form>
http://www.w3.org/TR/html5/the-input-element.html#attr-input-type-keywords
先试了一下那个,它不会清除有默认值的字段。
那么,这里有一个用jQuery做的方法。
$('.reset').on('click', function() {
$(this).closest('form').find('input[type=text], textarea').val('');
});
使用Javascript,你可以简单地用这样的语法getElementById("your-form-id").reset();
。
你也可以使用jquery调用重置函数,这样$('#your-form-id')[0].reset();
。
记住不要忘记[0]
。
你将得到以下错误,如果
TypeError.$(...).reset不是函数。 $(...).reset不是一个函数。
JQuery还提供了一个事件,你可以使用
>.$('#form_id').trigger("reset");。 $('#form_id').trigger("reset")。
我试了一下,可以用。
请注意。 重要的是要注意,这些方法只将你的表单重置为服务器在页面加载时设置的初始值。 这意味着如果你的输入被设置在值'set值'。 之前,你做了一个随机的变化,该字段将被重置为相同的值后,调用复位方法。
希望能帮到你
经过测试和验证的代码。
$( document ).ready(function() {
$('#messageForm').submit(function(e){
e.preventDefault();
});
$('#send').click(function(e){
$("#messageForm")[0].reset();
});
});
$(document).ready
中必须包含Javascript,而且必须与你的逻辑一致。
最简单也是最好的解决方案是-
$("#form")[0].reset();
。
不要在这里使用 -
$(this)[0].reset();
。
比如说,如果你想清空字段,除了accountType,同时下拉框将被重置为特定的值,即'All',其余字段应该被重置为空,即文本框,这种方法将用于清空特定字段,以满足我们的要求。
$(':input').not('#accountType').each( function() {
if(this.type=='text' || this.type=='textarea'){
this.value = '';
}
else if(this.type=='radio' || this.type=='checkbox'){
this.checked=false;
}
else if(this.type=='select-one' || this.type=='select-multiple'){
this.value ='All';
}
});
@using (Ajax.BeginForm("Create", "AcceptanceQualityDefect", new AjaxOptions()
{
OnSuccess = "ClearInput",
HttpMethod = "Post",
UpdateTargetId = "defect-list",
InsertionMode = InsertionMode.Replace
}, new { @id = "frmID" }))
frmID
是表格的标识。OnSuccess
的操作,我们调用JavaScript函数,名称为"ClearInput
"。