如何通过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();