如何在使用jquery重置html表单后执行代码?

Bri*_*man 40 html javascript jquery

单击html重置按钮后,

<input type="reset" />
Run Code Online (Sandbox Code Playgroud)

我想执行一些代码.如何执行此操作并确保在执行此操作之前重置表单?

Ben*_*ing 135

我并不特别喜欢将重置事件绑定到重置按钮而不是表单的想法.表单可以通过其他方式重置,在这种情况下,您的事件不会触发.

相反,将函数绑定到reset事件,但将其置于瞬时setTimeout中.它将确保在调用函数之前实际重置表单.

$('form').on('reset', function(e)
{
    setTimeout(function() { /* ... */ });
});
Run Code Online (Sandbox Code Playgroud)


iam*_*eed 50

使用setTimeout作为Ben在这里做的最好:https://stackoverflow.com/a/21641295/144665

$("input[type='text']").val('Hello Everybody!');

$("input[type='reset']").closest('form').on('reset', function(event) {

  // executes before the form has been reset
  console.log('before reset: ' + $("input[type='text']").val());

  setTimeout(function() {
    // executes after the form has been reset
    console.log('after reset: ' + $("input[type='text']").val());
  }, 1);

});
Run Code Online (Sandbox Code Playgroud)

您可能希望将该表单选择器缩小到涉及的特定表单,可能带有id.

小提示证明:http://jsfiddle.net/iambriansreed/Zh5cd/

  • 绑定到事件而不是单击按钮更加可靠! (2认同)