2013-06-04 34 views
1

我想在PhoneGap移動應用程序的HTML輸入文本框中檢測焦點和模糊事件。

對於iOS,行爲與預期相同 - 當文本框處於焦點狀態(單擊文本框)時,將顯示警告消息Focus!。當文本框失去焦點時(鍵盤關閉/移至下一個輸入框),將顯示警報消息Blur!PhoneGap:iOS/Android中的JavaScript焦點和模糊事件

然而,Android的,當我點擊文本框(文本框處於焦點),警報消息Focus!Blur!連續顯示,這意味着它是焦點,模糊,焦點,模糊,...

這怎麼可以避免,以便它可以與iOS對齊?

在JavaScript:

var txtValue = document.getElementByID('txtValue'); 
txtValue.addEventListener('focus', function() { 
    alert('Focus!'); 
}); 
txtValue.addEventListener('blur', function() { 
    alert('Blur!'); 
}); 

在HTML:

<input type="text" id="txtValue" /> 

回答

1

這是因爲當你示警戒,重點進入該對話框中,從輸入字段失去它和調度模糊事件。當關閉對話框時,焦點返回到輸入字段,調度焦點事件。

我不知道確切的解決辦法。也許使用自定義覆蓋對話框/燈箱而不是window.alert()可能是一個解決方案。

其他選項可能是比較該事件是由布控,例如(未測試):

var txtValue = document.getElementById('txtValue'); 
txtValue.addEventListener('focus', function(evt) { 
    if (evt.nodeName && evt.nodeName.toLowerCase() === 'input') { 
     alert('focus!'); 
    } 
});