2015-09-03 80 views
2

我已經減少到最小代碼來顯示此問題。問題是,在我的電腦上,這在Chrome上運行良好,但在我的Android上的Chrome上,它無法正常工作。首先,高度簡化的代碼:Android Chrome瀏覽器輸入onkeydown

<html><head><script language='javascript'> 
function kd(e) { 
    inp = document.getElementById('myinput'); 
    if(inp.value=='example') inp.value=''; 
    return true; 
} 
</head><body> 
    <input type='text' id='myinput' value='example' 
    onkeydown='return kd(event);'> 
</body></html> 

在我的電腦上,我把光標放在示例中的框中。我按任意鍵。 「示例」這個詞消失了,我按下的任何字母都會出現。

現在,在Android/Chrome瀏覽器,我把光標定位在說例如箱子。我按任意鍵。 「例子」這個詞消失了,但是我按下的那個字母沒有出現。如果我按另一個鍵,它會顯示該字母。我可以繼續打字。它只是拒絕顯示我按下的第一個字母。

這顯然有使用JavaScript的value=''部分做。如果我註釋掉該行,它可以正常工作(但在按第一個鍵時不會擦除「示例」一詞)。

更新:我在iPhone上測試了這個。它正確顯示了第一個按鍵的字母。所以,這僅限於Android或Android的Chrome。

回答

1

清除輸入焦點

$('input').val(''); 

和更好的做法文字使用keyup事件,因爲用戶往往你想確保你得到什麼,他們打算

+0

這個解決方案工作在鍵盤上拖動手指爲了我 –

相關問題