首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用jquery重置html表单后如何执行代码?

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

Stack Overflow用户
提问于 2012-04-25 23:57:19
回答 9查看 54.8K关注 0票数 52

在点击html重置按钮之后,

代码语言:javascript
复制
<input type="reset" />

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

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-04-26 00:09:41

使用像Ben这样的setTimeout是最好的:https://stackoverflow.com/a/21641295/144665

代码语言:javascript
复制
$("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);

});

您可能希望将表单选择器的范围缩小到所涉及的特定表单,可能需要一个id。

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

票数 59
EN

Stack Overflow用户

发布于 2014-02-08 10:50:29

我不太喜欢将reset事件绑定到reset按钮而不是窗体的想法。可以通过其他方式重置窗体,在这些情况下,您的事件将不会触发。

相反,将函数绑定到重置事件,但将其放在即时setTimeout中。它将确保表单在调用函数之前被实际重置。

代码语言:javascript
复制
$('form').on('reset', function(e)
{
    setTimeout(function() { /* ... */ });
});
票数 144
EN

Stack Overflow用户

发布于 2012-04-26 00:13:01

更新:使用preventDefault代替return false

代码语言:javascript
复制
$('input[type="reset"]').click(function(evt) {
    // Prevent the reset button from firing the form's reset event again
    evt.preventDefault();
    $(this).closest('form').get(0).reset();
    // At this point your form's inputs should have their values reset
});

http://jsfiddle.net/EYqrX/1/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10319289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档