那么,有没有办法知道,如果输入值被网页或用户更改?例如,一个输入,我用脚本帮助(GreaseMonkey)更改它的值,并且我需要知道该值是否被网页或用户更改/清除。这是我到目前为止,将重置价值,如果有任何更改。有没有办法知道,如果输入值被网页或用户更改?
if (firstInput.value != email) {
firstInput.focus();
firstInput.value = email;
}
那么,有没有办法知道,如果输入值被网页或用户更改?例如,一个输入,我用脚本帮助(GreaseMonkey)更改它的值,并且我需要知道该值是否被网页或用户更改/清除。这是我到目前为止,将重置价值,如果有任何更改。有没有办法知道,如果输入值被网页或用户更改?
if (firstInput.value != email) {
firstInput.focus();
firstInput.value = email;
}
不是,没有。如果你在控制页面,你可以通过一个包装函数对表单字段进行更改 - 然后检查值是否相同;如果没有,用户做出了改变。
或者,您可以注册按键事件,但这不会捕获例如复制和粘贴。
好主意,但是不可能在输入时设置onkeypress,而不设置属性(修改DOM)?我的例子并不可悲。 ''document.getElementById(“fname”)。addEventListener(“onKeypress”,function(){alert(“te”)},true);' – ncla 2011-05-18 15:44:14
您可以使用Javascript事件处理函数onKeyUp [jQuery:keyup()]来确定用户是否按下了任何键。这应该有助于区分自动和手动更改。
参考: http://www.devguru.com/technologies/ecmascript/quickref/evhan_onkeyup.html http://api.jquery.com/keyup/
* [右键单击] [粘贴] * - 没有任何按键,但用户已更改元素的内容。 – Piskvor 2011-05-18 15:47:55
您是否尝试过添加事件监听器 “改变” 事件?基本上当某些东西修改了这个值时,它应该引发一个“改变”事件。至少,用户交互。 – Cronco 2011-05-18 12:33:10
@Cronco:用户互动*将*触发这个,这是肯定的;但是,程序变更是否也会触发? – Piskvor 2011-05-18 12:35:15
@Piskvor,@Cronco:不,他们不会。当发生输入的“blur”事件时,检查并调用'change'。 – jwueller 2011-05-18 12:39:28