gpt4 book ai didi

javascript - 如何判断浏览器触发的onChange事件

转载 作者:行者123 更新时间:2023-11-29 14:47:58 24 4
gpt4 key购买 nike

情况:我有一个表单供用户更改他们的个人资料。

表单的输入字段带有为 onchange 事件附加的事件监听器,因此我可以判断用户是否对表单进行了任何更改。其中一个字段是密码字段。

在浏览器设置为记住密码的情况下,加载表单时,它会填写密码字段并触发我的监听器。

解决方法:

我已设置超时以在页面加载后重置我的 dataChanged 标志。不是很优雅。似乎不推荐抓取 event.callee.caller 堆栈,这是非标准的,并且不太可能区分用户和浏览器启动的事件。

问题:

有没有一种方法可以确定仅由用户交互(和 javascript)触发的事件?

虽然我不想取消该事件,但我只想忽略它。

事件选择说明:

此代码位于我们的表单处理 js 库中,该库在众多应用程序中使用。我们需要知道该字段是否实际更改了其内容,以便我们可以在用户离开表单时警告用户数据尚未保存。它还用于触发其他相互依赖字段的重新计算。

使用onkeyup/onkeypress会在用户按下非编辑键如Tab, cursor-arrow, Shift等时触发。我们希望避免必须将加载的内容存储起来,并将其与onkeyup之后的内容进行比较以确定是否内容实际上已经改变。

浏览器还会捕获用户编辑字段、改变主意并按下 ESC 或 CTRL-Z 的条件 - 不会触发 onchange。在此过程中多次触发 onkeypress 事件。

因此,我们希望坚持将 onchange 事件作为选择事件,因为它是为我们的目的而设计的——在内容实际发生变化时触发,仅在用户退出该字段时触发一次。

最佳答案

也许您可以在用户名和/或密码字段上设置 autocomplete="off"以阻止浏览器自动填充它们

关于javascript - 如何判断浏览器触发的onChange事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com