0

我是 JavaScript 新手。我正在使用 ASP.NET 在 Visual Studio 中工作,并且我有一个简单的表单。我还有一个 JavaScript 函数来验证表单和一个 JavaScript 函数来重置表单。验证和提交工作正常。但是,提交表单后,我无法让 JavaScript 重置功能工作。我也尝试过使用常规的 HTML 输入按钮,但它不起作用。它在成功提交之前工作正常,但之后就不行了。任何帮助将不胜感激。

function resetForm() {
      document.getElementById("accountForm").reset();
}

<asp:Button ID="subBtn" runat="server" Text="Submit" OnClientClick="return validateForm()" onclick="subBtn_Click" />
<asp:Button ID="rstBtn" runat="server" Text="Reset"  OnClientClick="resetForm()" oncClick="rstBtn_Click"/>
4

3 回答 3

2

您的重置按钮同时具有客户端和服务器端事件处理程序。这是必要的吗?考虑使用在客户端工作的按钮重置表单,例如

<input type="reset" />
于 2012-07-03T00:47:08.677 回答
1

显然表单正在被重置,但控件具有默认值,因此它们是在表单重置时设置的。

重置按钮会将所有控件重置为其默认值。如果要清除默认值以使所有表单控件都没有值,则需要清除它们的所有默认值,例如:

function clearForm(form) {
  var control, controls = form.elements;

  for (var i=0, iLen=controls.length; i<iLen; i++) {
    control = controls[i];

    // Don't change value of submit or reset buttons
    if (control.type != 'submit' && control.type != 'reset') {

      if (control.tagName.toLowerCase() == 'select') {

        for (var j=0, jLen=control.options.length; j<jLen; j++) {
          control.options[j].defaultSelected = false;
        }             

      } else if (control.defaultChecked) {
        control.defaultChecked = false;

      } else {
        control.defaultValue = '';
      }
    }
  }
  // Now reset the form
  form.reset();
}

并将对表单的引用传递给函数,因此您的重置按钮类似于:

<input type="reset" onclick="clearForm(this.form);">
于 2012-07-03T00:49:17.443 回答
0

它确实重置了表单,提交后的表单初始状态具有值。

reset
恢复表单元素的默认值。它执行与重置按钮相同的操作。

规格

如果这是您喜欢的,您可以编写 javascript 代码来清除所有输入。

var e = document.getElementsByTagName('input');
for (var i = 0; i < e.length; i++){
    e[i].value = "";
}

如果你可以使用jQuery,那就简单多了:

$('input[type="text"], textarea, select').val('');
于 2012-07-03T00:28:02.127 回答