Javascript 如何确定用户输入是否发生了更改事件?

Javascript 如何确定用户输入是否发生了更改事件?,javascript,user-input,Javascript,User Input,我有一个动态表单,它根据用户选择的值进行更新 我计算了一个特定的输入字段(类型编号)的默认值并进行了更新。但如果用户每次都选择自己的值,我希望尊重这一点,而不是在他们继续填写表单时重新计算默认值 检测用户输入与我的程序输入的最佳方式是什么 我考虑过onclick事件,但想尊重他们是否使用键盘输入。我考虑过一个on change事件,但由于我的程序经常重新计算值,所以无法工作 我发现这个答案对C#fields很有启发 我发现这个答案是关于使用输入事件的——它似乎可以工作,但在每一个看起来不太理想的

我有一个动态表单,它根据用户选择的值进行更新

我计算了一个特定的输入字段(类型编号)的默认值并进行了更新。但如果用户每次都选择自己的值,我希望尊重这一点,而不是在他们继续填写表单时重新计算默认值

检测用户输入与我的程序输入的最佳方式是什么

我考虑过onclick事件,但想尊重他们是否使用键盘输入。我考虑过一个on change事件,但由于我的程序经常重新计算值,所以无法工作

我发现这个答案对C#fields很有启发


我发现这个答案是关于使用输入事件的——它似乎可以工作,但在每一个看起来不太理想的按键上都会触发

如果在输入上设置一个“keydown”事件,您会怎么想。如果您的脚本更改了值,您只需使用“element.value=“Foo”?

这里有一个不需要大量代码干预或大量事件触发器的想法:添加或事件(以更适合页面需要的为准)到您的输入,触发时,将获取输入值并将其与计算的默认值进行比较。如果不同,则表示用户选择了不同的值。然后,您可以将用户值存储在隐藏元素中(简单的跨距即可)

下次重新计算默认值时,可以检查隐藏元素是否有任何内容,然后不替换输入中的值。或者,可以在运行重新计算之前检查包含用户输入的隐藏范围的内容,并完全避免

这将是一个不改变用户界面的解决方案。如果可能,最简单的解决方案是添加一个复选框,允许用户定义自己的值