那麼,有沒有辦法知道,如果輸入值被網頁或用戶更改?例如,一個輸入,我用腳本幫助(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