2015-03-30 121 views
-1

嗨我想模擬用戶單擊輸入框。 腳本是:在Javascript中使用jquery模擬按鍵

function prepareToScan(){ 
    $("fireRegAdd").focus(); 
    $('fireRegAdd').keypress(); 
} 

和HTML是

<h2>Add a visitor to today's fire register</h2> 
<input type="button" onmousedown="prepareToScan()" value="Add Visitor"> 
<input id="fireRegAdd" name="fireRegAdd"> 
</div> 

我有一個條形碼掃描儀這使代碼到輸入框中,但只有當它已經「點擊」。我試過.focus(),但它需要兩次掃描才能使掃描工作。聚焦點與實際點擊框不同。有誰知道這是怎麼做到的嗎?

感謝

所以我發現,如果我在警報添加它正確設置:

function prepareToScan(){ 
    alert("ready to scan"); 
    $("fireRegAdd").focus(); 
    $('fireRegAdd').keypress(); 


} 

,但我真的不希望一個警告框

我已經添加了代碼演示。當你點擊按鈕時,我希望在輸入框中有一個閃爍的光標。

function prepareToScan(){ 
 
    
 
\t $("#fireRegAdd").focus(); 
 
\t $('#fireRegAdd').click(); 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div> 
 

 
<h2>Add a visitor to today's fire register</h2> 
 
<input type="button" value ="Add Visitor" onmousedown="prepareToScan()"/> 
 
<input id="fireRegAdd" name="fireRegAdd" value="" /> 
 
</div>

+0

可能重複:http://stackoverflow.com/questions/2381572/how-can-i-trigger-a-javascript-event-click – ToastyMallows 2015-03-30 19:57:01

+0

你試過'。點擊()'?另外,不要忘記你的'#'在jQuery選擇器中的id前面。 – 2015-03-30 19:58:01

+0

我正在使用我不認爲支持的mootools。點擊 – user1616338 2015-03-30 20:18:03

回答

0

我發現,它幾乎是不可能集中於一個輸入框,以便CURSO閃爍。我嘗試了一切,包括操縱光標位置和使用單擊事件。

但我解決了我的問題。條形碼掃描儀就像鍵盤一樣。所以我寫了一些檢測鍵盤輸入的代碼。它檢查傳入的密鑰。如果它在250毫秒內收到3個以上,則認爲它來自掃描儀。作品一種享受。很容易修改以適應不同的應用程序。這裏是我結束的JavaScript代碼。爲了使它工作,你需要一個ID =「條碼」的div希望有人認爲它有用。

var chars = []; 
var pressed = false; 
window.addEvent('keydown', function(evt){ 
    //console.log(evt.key); 
     chars.push(evt.key); 
     setTimeout(function(){ 
     if (chars.length >= 3) { 
      var barcode = chars.join(""); 
      $("barcode").value= barcode; 
     } 
     chars = []; 
     pressed = false; 
     },250); 
});