2012-07-20 45 views

回答

21

這是默認Android Webkit瀏覽器中的known bug。根據this QuirksMode page,你可以看到很多Android版本都遭受了這個問題。另一方面,Android版Chrome不支持。

我爲此創建了一個簡單的JavaScript填充(修復)。首先,閱讀這個問題How to display placeholder's text in HTML5's number-typed input,然後如果你仍然想使用這樣的佔位符,結賬my solution gist

TL; DR;

留下你的標記,因爲你期望;

<input type="number" placeholder="Enter some numbers" /> 

然後在頁面加載後運行這些腳本中的任意一個;

// jQuery version 
$("input[type='number']").each(function(i, el) { 
    el.type = "text"; 
    el.onfocus = function(){this.type="number";}; 
    el.onblur = function(){this.type="text";}; 
}); 

// Stand-alone version 
(function(){ var elms = document.querySelectorAll("input"), i=elms.length; 
    while(i--) { 
     var el=elms[i]; if(el.type=="number"]) 
      el.type="text", 
      el.onfocus = function(){this.type="number";}, 
      el.onblur = function(){this.type="text";}; 
    } 
})(); 
+0

謝謝aaronsnoswell :) – Shinoj 2012-09-27 05:20:42

+1

在Jellybean下,此解決方案僅適用於部分時間,導致鍵盤丟失以響應用戶的點擊。在捕獲模式下運行此代碼似乎可以消除很多這些問題。 – 2012-11-03 16:41:35

+0

@KevinDecker謝謝你測試它 - 你能解釋一下你的意思是捕捉模式嗎? – aaronsnoswell 2012-11-04 02:24:28

11

通過使用類型=「電話‘而不是類型=‘顯示佔位符和數字鍵盤打開焦點號’。

+2

Tel只適用於美國,但不適用於需要alhpa-numeric字符的國際郵政編碼。 – TaeKwonJoe 2013-11-13 22:16:43

+0

這不僅僅是一種解決方法嗎? – ViniciusPires 2014-02-13 17:29:25

+0

在這個問題的具體情況下,@TaeKwonJ​​oe是對的。但總的來說,這是迄今爲止問題標題的最佳解決方案:「輸入類型的佔位符文本=」數字「不會顯示在webkit中。畢竟,標題沒有說明問題是與'zip-code'有關。 – 2014-07-10 15:07:27

0

我有同樣的問題,我的解決辦法是設置’類型「字段作爲文本,我認爲這是因爲type屬性發生的,佔位符文本不是數字!如果你不得不強制用戶使用數字格式,你可以使用javascript插件來實現這一點,我這樣做: )

-1

試試這個:

<input type="text" pattern="[0-9]" id="zip-code" placeholder="Zip code"> 
+3

請不要使用*試試這個*作爲答案。解釋你所做的事情和原因。 – Jens 2017-09-27 09:51:47