2016-05-16 62 views
0

我有一個輸入字段被硬件掃描器填充。觸發骨幹變化事件,無模糊/輸入字段丟失焦點

當填充輸入字段,但沒有發生模糊事件時,我需要骨幹來觸發更改事件。這是可能的骨幹,或者只有在模糊事件發生後纔會觸發更改事件?

骨幹活動宣言:

events: { 
     // On destination populate set destination and focus on location 
     "change #destination" : "destinationscan", 
     // On Location populate set location and focus on crate 
     "change #location" : "locationscan", 
     // On crate populate send data. 
     "change #name" : "cratescan" 
    }, 

HTML:

<input id="name" type="text" placeholder="Enter Crate Name..." required value="" /> 
      <div id="locationtaholder"> 
       <input type="text" placeholder="Type a location..." required id="location" /><img id="clearlocation" src="img/clear.png" alt="Clear Location" title="Clear Location" class="item-hidden" /> 
       <ul class="typeahead dropdown-menu"></ul> 

      </div> 
      <div id="destinationtaholder"> 
       <input type="text" placeholder="Type a destination..." id="destination" /><img id="cleardestination" src="img/clear.png" alt="Clear Destination" title="Clear Destination" class="item-hidden" /> 
       <ul class="typeahead dropdown-menu"></ul> 
      </div> 
+0

這不是清楚我什麼是問題。您的「硬件掃描儀」不會觸發所有預期的事件,也不會觸發您不想要的事件。 [X/Y問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem):爲什麼你想避免模糊?請添加一些「_hardware_ scanner」與您的瀏覽器交互的信息:例如它是否像一些條形碼掃描儀一樣模擬鍵盤? –

+0

hardward掃描器像paste一樣填充輸入字段,但沒有按鍵事件。它不會模糊輸入框,並且我需要在掃描後立即處理到達輸入字段的數據,因此無法使用更改事件,因爲它只會在模糊時觸發。 –

+0

我明白了。有一個「更改」事件,但也可能是因爲不完整的字符串。這是真的?您可以添加掃描儀可以填充任何虛擬數據的另一個字段嗎?你可以使用這個chnage來檢測填充其他字段是否完成。 –

回答

1

變化事件在骨幹是jQuery的事件。所以,如果你不想觸發模糊應用更改,你可以直接觸發改變事件後填充輸入:

$('selector').change(); 
$('selector').trigger("change"); 
+0

如何捕獲填充事件? –

+0

這是不同的,只是根據你的上下文。簡單的方法是在輸入字段中檢查密鑰。 –

+0

但keyup/keydown不會啓動,因爲輸入由hardward掃描器輸入填充。 –

相關問題