2016-05-17 363 views
1

我有一個表單檢測按鍵來驗證用戶是否已將任何數據輸入到輸入框(我無法更改表單,我只是訪問它)。使用模擬按鍵自動輸入文本到輸入框

我寫了一個應用程序,它可以自動更改輸入框的值屬性和適當的數據,但是,表單總是無法提交,因爲在輸入框被選中時沒有任何按鍵,並且它希望我「輸入數據「輸入到輸入框中。

有沒有一種方法可以選擇輸入框,在更改值之前通過「按鍵」輸入隨機字符?

我需要一個完全的Javascript解決方案,我已經看到了一些可能在JQuery中工作的解決方案,但我無法爲該特定項目加載該庫。

回答

1

我不知道這是否會做你想做的,但它似乎運行「onkeypress」警報()。

<input type="text" id="blah" value="" onkeypress="javascript:alert ('Key Pressed');" /> 

<script type="text/javascript" language="Javascript"> 
    // Create a keyboard event based on the function allowed by the browser (initKeyboardEvent or initKeyEvent) 
    var e = document.createEvent ("KeyboardEvent"); 
    if (e.initKeyboardEvent) 
    { 
     e.initKeyboardEvent("keypress", true, true, window, false, false, false, false, 0, 65); 
    } 
    else if (e.initKeyEvent) 
    { 
     e.initKeyEvent("keypress", true, true, window, false, false, false, false, 0, 65); 
    } 

    // Focus the input and send the keypress 
    var inp = document.getElementById("blah"); 
    inp.focus(); 
    inp.dispatchEvent(e); 
</script> 
+0

這段代碼是有道理的,但我似乎無法得到它的工作。它在一個Chrome擴展中,我認爲在這種情況下沒有什麼區別,但也許這就是爲什麼它沒有執行?沒有錯誤或任何其他的... – CdnXxRRODxX

+0

哦。我從來沒有開發過Chrome擴展程序,才知道它的怪癖。快速谷歌搜索顯示:http://stackoverflow.com/questions/13987380/how-to-to-initialize-keyboard-event-with-given-char-keycode-in-a-chrome-extensio哪裏有人說有一個Webkit的bug,這可能是相關的?對不起,我不能幫助更多:( – Phil

+0

如果擴展名是不向公衆發佈,你有沒有考慮寫它作爲一個Userscript?這可能讓你做你想要什麼,並會與支持他們的任何瀏覽器中工作(如。帶有Tampermonkey擴展的Chrome,帶有Greasemonkey的Firefox等)。 – Phil