我有一些表单字段,如<input>
,<textarea>
,<dropdown>
等。
如果用户在任何表单字段中进行更改,则应立即提示该字段已更改。
我应用了不同的事件,例如 onKeyPress (不适用于退格键), onChange (失去焦点时有效)。
在简单/普通的javascript中是不可能的,那么我想在Dojo中知道它。
答案 0 :(得分:1)
请参阅堆叠问题:Detect all changes to a <input type="text"> (immediately) using JQuery
虽然接受的答案是使用jquery setInterval可以正常使用javascript。只需使用GetElementByID或GetElementsByTagName来获取输入字段,然后只需检查它们自己的值。
答案 1 :(得分:0)
没有HTML“下拉列表”元素,您可能需要选择。
对于某些控件,您可以将控件的当前值与其 defaultValue 进行比较以查看它是否已更改,选择适合该控件的任何事件。对于select,onchange是最好的,并与之前选择的选项(如果有)相比较。您可以使用输入和textarea键盘。单选按钮和复选框单击并与之前检查过的按钮(如果有)进行比较。
答案 2 :(得分:0)
通过javascript附加事件onFocus
在输入字段上。 Onfocus
setTimeout()
并将其递归。如果任何内容会发生变化,它将通知。就我而言,它有效;即使我从中做了另一项任务。我在页面加载时保存现有的输入字段值。例如,页面加载时 abc 。用户将其更改为 abcd ,然后会有一条消息用于取消保存更改。但是,当用户删除 d 并再次将其设为 abc 时,消息将消失,表示没有未保存的更改。