Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查表单字段是否更改_Javascript_Html_Forms_Events_Javascript Events - Fatal编程技术网

Javascript 检查表单字段是否更改

Javascript 检查表单字段是否更改,javascript,html,forms,events,javascript-events,Javascript,Html,Forms,Events,Javascript Events,我有一些表单字段,如,,等 如果用户在任何表单字段中进行了更改,则应立即提示该字段已更改 我应用了不同的事件,如onKeyPress(不适用于退格键),onChange(在失去焦点时有效) 这在简单/普通javascript中是不可能的,那么我想在Dojo中了解它。没有HTML“dropdown”元素,您可能指的是select 对于某些控件,可以将控件的当前值与其默认值进行比较,以查看是否已更改,然后选择适合该控件的事件。对于select,onchange是最好的,并与以前选择的选项(如果有)进

我有一些表单字段,如

如果用户在任何表单字段中进行了更改,则应立即提示该字段已更改

我应用了不同的事件,如onKeyPress(不适用于退格键),onChange(在失去焦点时有效)

这在简单/普通javascript中是不可能的,那么我想在Dojo中了解它。

没有HTML“dropdown”元素,您可能指的是select

对于某些控件,可以将控件的当前值与其默认值进行比较,以查看是否已更改,然后选择适合该控件的事件。对于select,onchange是最好的,并与以前选择的选项(如果有)进行比较。输入和文本区域,您可以使用keyup。单选按钮和复选框单击并与之前选中的单选按钮和复选框(如果有)进行比较。

参见堆栈问题:


虽然可以接受的答案是使用jquery,但setInterval可以很好地使用javascript。只需使用GetElementByID或GetElementsByTagName来获取输入字段,然后对照它们自己检查它们的值

通过javascript在输入字段上附加事件
onFocus
Onfocus
setTimeout()
并使其递归。如果任何内容将发生更改,它将通知。就我而言,它是有效的;甚至我也从中完成了另一项任务。我在页面加载时保存现有的输入字段值。e、 g页面加载时为abc。用户将其更改为abcd则会显示一条未保存更改的消息。但是,当用户删除d并再次将其设置为abc时,消息将消失,这意味着没有未保存的更改。

我认为这就是您要查找的输入,当我只按ctrl键时,textarea onKeup将失败。您不能只按control键更改值,因此如果它不发送事件,你为什么在乎?控件键、shift键和option键(以及其他键)是修改键,它们构成键事件的一部分,而其他键可能会更改控件的值。但输入值仍应具有相同的值。只需检查一下就可以消除此类事件(移位、alt…等),注意在大多数情况下,要求知道“立即”是不合理的。