在点击html重置按钮之后,
<input type="reset" />
我想执行一些代码。如何执行此操作并确保表单在执行此操作之前已重置?
发布于 2012-04-26 00:09:41
使用像Ben这样的setTimeout是最好的: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);
});
您可能希望将表单选择器的范围缩小到所涉及的特定表单,可能需要一个id。
发布于 2014-02-08 10:50:29
我不太喜欢将reset事件绑定到reset按钮而不是窗体的想法。可以通过其他方式重置窗体,在这些情况下,您的事件将不会触发。
相反,将函数绑定到重置事件,但将其放在即时setTimeout中。它将确保表单在调用函数之前被实际重置。
$('form').on('reset', function(e)
{
setTimeout(function() { /* ... */ });
});
发布于 2012-04-26 00:13:01
更新:使用preventDefault
代替return false
。
$('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
});
https://stackoverflow.com/questions/10319289
复制相似问题