如何通过JavaScript重置(清除)表单?

119 javascript jquery

我试过$("#client.frm").reset();但它没有工作.那么如何通过jQuery重置表单?

Nic*_*ver 247

form.reset() 是一个DOM元素方法(不是jQuery对象上的一个),所以你需要:

$("#client.frm")[0].reset();
//faster version:
$("#client")[0].reset();
Run Code Online (Sandbox Code Playgroud)

或者没有jQuery:

document.getElementById("client").reset();
Run Code Online (Sandbox Code Playgroud)

  • 我的大脑刚刚扩展,谢谢:"一个jQuery对象是一个类似于一个或多个DOM元素的数组包装.要获得对实际DOM元素(而不是jQuery对象)的引用,你有两个选择.第一个(和最快的方法是使用数组表示法:$("#foo")[0]; //等价于document.getElementById("foo")第二种方法是使用.get()函数:$("#foo ").get(0); //与上面相同,只是更慢." http://learn.jquery.com/using-jquery-core/faq/how-do-i-pull-a-native-dom-element-from-a-jquery-object/ (3认同)

小智 40

你可以简单地做:

$("#client.frm").trigger('reset')

  • “触发器”带我进入新世界 (2认同)

Mah*_*leh 17

纯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;
  }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案现在不起作用(2016年).当form有text,password和textarea输入的默认值时,你应该使用elements [i] .defaultValue =""而不是elements [i] .value ="". (5认同)

小智 6

请注意,form.reset()如果表单中的某些输入标签具有属性,则该功能将不起作用name='reset'


Alp*_*esh 5

.reset()方法不会清除默认值和复选框字段,还有更多问题。

为了完全重置检查以下链接 -

http://www.javascript-coder.com/javascript-form/javascript-reset-form.htm


小智 5

清除表格如下

document.forms[0].reset();
Run Code Online (Sandbox Code Playgroud)

您可以简单地清除组内的表单元素。通过使用这个forms[0]