如何通过JavaScript重置(清除)表单?
我尝试了如何通过JavaScript重置(清除)表单?,javascript,jquery,Javascript,Jquery,我尝试了$(“#client.frm”).reset()但它不工作。那么如何通过jQuery重置表单?是一个DOM元素方法(不是jQuery对象上的方法),因此您需要: $("#client.frm")[0].reset(); //faster version: $("#client")[0].reset(); 或者不使用jQuery: document.getElementById("client").reset(); .reset()方法没有清除默认值和复选框字段,还有很多问题 要完全复
$(“#client.frm”).reset()代码>但它不工作。那么如何通过jQuery重置表单?是一个DOM元素方法(不是jQuery对象上的方法),因此您需要:
$("#client.frm")[0].reset();
//faster version:
$("#client")[0].reset();
或者不使用jQuery:
document.getElementById("client").reset();
.reset()
方法没有清除默认值和复选框字段,还有很多问题
要完全复位,请检查以下链接-
纯JS解决方案如下:
function clearForm(myFormElement) {
var elements = myFormElement.elements;
myFormElement.reset();
for(i=0; i<elements.length; i++) {
field_type = elements[i].type.toLowerCase();
switch(field_type) {
case "text":
case "password":
case "textarea":
case "hidden":
elements[i].value = "";
break;
case "radio":
case "checkbox":
if (elements[i].checked) {
elements[i].checked = false;
}
break;
case "select-one":
case "select-multi":
elements[i].selectedIndex = -1;
break;
default:
break;
}
}
}
函数clearForm(myFormElement){
var elements=myFormElement.elements;
myFormElement.reset();
对于(i=0;i使用JavaScript函数reset()
:
您可以简单地执行以下操作:
$(“#client.frm”).trigger('reset')
尝试以下操作:
$('#resetBtn').on('click', function(e){
e.preventDefault();
$("#myform")[0].reset.click();
}
注意,如果表单中的某些输入标记具有属性name='reset'
请按如下方式清除表单,则函数form.reset()
将不起作用
document.forms[0].reset();
您只需清除组中的表单元素即可。使用此表单[0]
尝试此代码。您的答案的完整解决方案
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(":reset").css("background-color", "red");
});
</script>
</head>
<body>
<form action="">
Name: <input type="text" name="user"><br>
Password: <input type="password" name="password"><br>
<button type="button">Useless Button</button>
<input type="button" value="Another useless button"><br>
<input type="reset" value="Reset">
<input type="submit" value="Submit"><br>
</form>
</body>
</html>
$(文档).ready(函数(){
$(“:reset”).css(“背景色”、“红色”);
});
名称:
密码:
无用按钮
通过Javascript
和jQuery
重置(清除)表单:
Javascript示例:
document.getElementById("client").reset();
jQuery示例:
您可以尝试使用trigger()
您可以使用以下选项:
$('[element]').trigger('reset')
您可以使用onclick函数清除整个表单
<button type="reset" value="reset" type="reset" class="btnreset" onclick="window.location.reload()">Reset</button>
重置
window.location.reload()函数将刷新页面并清除所有数据。使用此简单技巧重置表单
_("form_id").reset();
注意:清除和重置是两件不同的事情。重置(.Reset()
)会将值恢复到HTML中的原始值。为此,请参阅下面的Nick Craver解决方案。“清除”通常意味着将值恢复为空白/未选中/未选中;请参阅MahmoudS解决方案。我的大脑刚刚扩展,谢谢:“jQuery对象是围绕一个或多个DOM元素的类似数组的包装器。要获取对实际DOM元素(而不是jQuery对象)的引用,有两个选项。第一个(也是最快的)方法是使用数组表示法:$(“#foo”)[0];//等价于document.getElementById(“foo”),第二个方法是使用.get()函数:$(“#foo”).get(0);//与上面相同,只是速度较慢。“我得到下一个错误:TypeError:document.getElementById(…)。reset不是函数[Learn More]。我对表单使用FormValidate插件。它的resetForm也不会重置表单。”=(有什么建议吗?Eugen,就像《印第安纳琼斯》和《最后一次十字军东征》一样,你必须在这里迈出一大步。如果你调用document.getElementById('myform').reset(),它实际上会清除表单,即使该方法似乎不存在。典型的M$混淆。这是jQuery插件解决方案,应该大致相当。(我使用了您的selectedIndex=-1
技巧。)此解决方案现在(在2016年)不起作用。当表单具有文本、密码和文本区域输入的默认值时,您应该使用元素[I]。defaultValue=“”而不是元素[I]。value=“”。var field_type=elements[I]。type.toLowerCase()
@Andrew:这取决于你想要什么。如果你只想将表单重置为defaultValue
s,你可以在表单对象上调用reset()
。这里的代码是清除表单,而不是重置表单。一个触发器将我带到一个新世界
<button type="reset" value="reset" type="reset" class="btnreset" onclick="window.location.reload()">Reset</button>
_("form_id").reset();