2011-05-18 67 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

相關問題