2015-07-11 79 views
1

假设我们有一个输入,并且我们想要添加一些文本。用按键模拟输入填充

<form> 
First name:<br> 
<input type="text" id="thename" name="firstname"> 
</form> 

简单的事情就是用经典的element.value ...添加输入值。 但是如果我想通过模拟按键事件添加例如'David'?

我跟着几种方法是这样的:

function simulateKeyEvent(character) { 
    var evt = document.createEvent("KeyboardEvent"); 
    (evt.initKeyEvent || evt.initKeyboardEvent)("keypress", true, true, window, 
        0, 0, 0, 0, 
        0, character.charCodeAt(0)) 
    var canceled = !body.dispatchEvent(evt); 
    if(canceled) { 
    // A handler called preventDefault 
    alert("canceled"); 
    } else { 
    // None of the handlers called preventDefault 
    alert("not canceled"); 
    } 
} 

here两者并阅读几乎每一个解决方案,但他们没有工作。

注:我在Firefox和Chrome

回答

0

工作你只是想添加文本输入,但使它看起来好像它被鬼类型?

function typeToInput(id, str){ 
    var ctr = 0; 
    var tmr = setInterval(function(){ 
     document.getElementById(id).value += str[ctr]; 
     ctr++; 
     if(ctr >= str.length) clearInterval(tmr); 
    }, 250); 
} 

不过,你可能会想取消计时器并清除文本,如果输入获得焦点..