2010-07-30 35 views
66

強制鍵盤與數字移動網站,我有一個移動網站,它有一些HTML input元素在裏面,像這樣:如何在Android的

<input type="text" name="txtAccessoryCost" size="6" /> 

我已經嵌入網站成爲一個WebView爲可能的Android 2.1消費,這樣它也將成爲Android應用程序。

是否有可能在這個HTML元素input重點是讓鍵盤與數字而不是默認的一個字母?

或者,是否可以將其設置爲整個應用程序(也許東西在the Manifest file),如果它是不可行的HTML元素?

+0

如果想在iOS上數字鍵盤除了Android,你應該這樣做:http://stackoverflow.com/a/31619311/806956 – 2015-07-24 20:34:56

回答

82
<input type="number" /> 
<input type="tel" /> 

這兩個都提供了當輸入獲得焦點時的數字小鍵盤。

<input type="search" /> 顯示了普通鍵盤有額外的搜索按鈕

一切似乎帶來了標準鍵盤。

+0

今天會看看它,然後會讓你知道,如果這將工作。謝謝,理查德! – ncakmak 2010-12-01 17:25:59

+1

嗨理查德。沒有工作,輸入字段仍然打開標準鍵盤。 – ncakmak 2010-12-03 13:04:02

+0

[HTML規範的'input'類型列表](http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html) ,包括['number'](http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-%28type=number %29)和['tel'](http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#telephone-state-%28type =電話%29)。 – 2013-08-15 22:04:33

6

這應該起作用。但是我在Android手機上遇到同樣的問題。

<input type="number" /> <input type="tel" /> 

我發現,如果我不包括jquerymobile框架,鍵盤正確地顯示在兩種類型的字段。

,但我沒有帶發現了一個解決方案來解決這個問題,如果你真的需要使用jquerymobile。

UPDATE: 我發現,如果形式標籤存儲了

<div data-role="page"> 

數字鍵盤的未示出。這必須是一個錯誤......

+0

感謝您挖掘到這一點。我不確定我是否理解:「如果form-tag存儲在div [data-role = page]之外」。在我的情況下,問題發生在很好地嵌套在div [data-role = page]中的表單中。也許問題在於這些頁面在我的情況下顯示爲對話框? – Wytze 2012-06-28 15:21:21

37

重要提示

我張貼這是一個答案,而不是評論,因爲這是比較重要的信息,它會吸引更多的關注,這種格式。

至於其他研究員指出,可以強制設備向您展示一個數字鍵盤type="number"/type="tel",但我必須強調的是,你必須與此極爲謹慎。

如果有人希望用零開始,如000222一個數字,那麼她很可能有麻煩,因爲一些瀏覽器(桌面版Chrome,例如)將發送到服務器222,這不是她想要的東西。

關於type="tel"我不能說類似的話,但我個人不使用它,因爲它在不同的電話行爲可能會有所不同。我曾經侷限於自己的簡單pattern="[0-9]*"當你想提供一個號碼輸入不中的Android

+4

自動重新格式化可能不會在'type =「tel」'發生。 [規範](http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#telephone-state-%28type=tel%29)注意'tel'不強制任何特定的語法,不像['number'](http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type- attribute.html#number-state-%28type = number%29),它要求它的值是[有效的浮點數](http://www.whatwg.org/specs/web-apps/current-work /multipage/common-microsyntaxes.html#valid-floating-point-number)。 – 2013-08-15 21:58:33

+0

它有多糟糕?我們正在努力加快我們的移動客戶的表單流程,這似乎是一個明顯的解決方案,但我們也希望有一些可靠的解決方案。您發佈了強烈的警告,反對使用此方法。我想知道你能否詳細說明一下嗎? – 2015-03-18 19:46:40

+0

@Philll_t,用戶需要發送'000222'數據,但是你在服務器端取得'222'。你沒看到功能完全破壞嗎?服務器獲取錯誤的數據。 – user907860 2015-03-29 10:52:28

-1

input type = number

工作,你可以使用HTML5輸入類型=「數字」的屬性值。

<input type="number" name="n" /> 

下面是iPhone 4上出現的鍵盤:

HTML5的iPhone屏幕截圖輸入類型號 的Android 2.2使用該鍵盤用於type =編號:

的Android截圖的HTML5輸入類型數

1

當輸入類型爲「數字」時,一些瀏覽器的igoners向服務器發送前導零。所以我用jQuery和HTML的混合加載數字小鍵盤,並且還確保該值作爲文本發送並不是數字:

$(document).ready(function(){ 
 
$(".numberonly").focus(function(){$(this).attr("type","number")}); 
 
$(".numberonly").blur(function(){$(this).attr("type","text")}); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="numberonly">

+2

這會導致Android版Chrome瀏覽器出現令人討厭的問題。當你點擊輸入時,鍵盤不會**出現。然後,您必須再次點擊文本框,然後鍵盤纔會出現數字鍵盤。我真的希望我們有'type =「digits」'選項,所以我們不必有這些黑客。我的意思是,這不像一個零號碼是罕見的(美國郵政編碼是一個明顯的例子)。 – Jaxidian 2017-09-12 14:31:49

+0

我也面臨同樣的問題!將字段設置爲「type = tel」是最佳解決方案。 – 2017-09-13 06:07:42