奇怪的表单重置事件行为
Weird form reset event behavior
我在收听表单reset
事件时遇到了奇怪的问题。
在reset
事件的回调中,我检查输入值,并且它不会立即更新,我必须等到下一个刻度,例如setTimeout(callback, 0)
或用el.reset()
手动防止默认和触发事件
这是一个jsbin的例子,所以你可以看到我在说什么-在你插入一些值到输入并单击重置按钮后,不应该将任何内容添加到div
元素。
我可以在Chrome和Firefox上看到同样的问题。
- 这是一个bug在实现或预期的行为?
- 如果是后者——为什么?
- 是否有更好的方法来解决它比做setTimeout或防止默认和触发事件手动?
重置事件在重置之前而不是之后被调用,以便在需要时给您一个取消重置的机会。
这个SO问题说,在重置后做某事的唯一方法是在超时时调用函数:在表单重置后调用函数
似乎解决这个问题的方法可能是重写onreset
属性。
不能保证在其他浏览器中也能工作。
form.onreset=function(){
var b = input.value;
logger.innerHTML += b + "<br/>";
};
请查看我准备的示例http://jsbin.com/muzahuye/20/edit?html,js,output
在firefox上运行良好,至少28
https://browserling.com/queue?uri=http%3A%2F%2Fjsbin.com%2Fmuzahuye%2F20%2F%3Foutput&浏览器= firefox&每晚version =
相关文章:
- 当触发下拉列表的onchange事件时,使用JavaScript提交表单
- 在表单中的输入字段上提交事件
- 如何在表单提交事件后运行JavaScript*
- 在动态加载的PHP表单上放置JavaScript事件
- 选择使用 jQuery 接收 change() 事件的表单的提交按钮
- 无法在第一次单击事件时提交表单
- Jquery处理提交按钮's单击事件而不中断表单发布
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 表单元素上的jQuery focusout事件即使在单击子元素时也会被触发
- JavaScript onChange 事件侦听器对输入表单不起作用
- 动态添加/复制表单时绑定到表单提交事件
- 如何获取 Redux-Form 的提交事件中的表单值
- 如何在 OnKeyPress 事件后获取输入表单元素的值
- 显示带有表单提交的单击事件的 toastR
- 如何在表单提交时在谷歌分析上设置事件跟踪
- 多表单计算器事件处理程序
- onClick 事件在表单标记中不起作用
- 使用Bookmarklet在Firefox中为asp表单加载启动onclick事件
- 如何检查表单提交时鼠标滚动点击完成的点击事件
- 使用jquery提交点击事件表单