2011-05-18 71 views
2

那么,有没有办法知道,如果输入值被网页或用户更改?例如,一个输入,我用脚本帮助(GreaseMonkey)更改它的值,并且我需要知道该值是否被网页或用户更改/清除。这是我到目前为止,将重置价值,如果有任何更改。有没有办法知道,如果输入值被网页或用户更改?

if (firstInput.value != email) { 
    firstInput.focus(); 
    firstInput.value = email; 
} 
+0

您是否尝试过添加事件监听器 “改变” 事件?基本上当某些东西修改了这个值时,它应该引发一个“改变”事件。至少,用户交互。 – Cronco 2011-05-18 12:33:10

+0

@Cronco:用户互动*将*触发这个,这是肯定的;但是,程序变更是否也会触发? – Piskvor 2011-05-18 12:35:15

+0

@Piskvor,@Cronco:不,他们不会。当发生输入的“blur”事件时,检查并调用'change'。 – jwueller 2011-05-18 12:39:28

回答

1

不是,没有。如果你在控制页面,你可以通过一个包装函数对表单字段进行更改 - 然后检查值是否相同;如果没有,用户做出了改变。

或者,您可以注册按键事件,但这不会捕获例如复制和粘贴。

+0

好主意,但是不可能在输入时设置onkeypress,而不设置属性(修改DOM)?我的例子并不可悲。 ''document.getElementById(“fname”)。addEventListener(“onKeypress”,function(){alert(“te”)},true);' – ncla 2011-05-18 15:44:14

相关问题