2013-07-12 39 views
5

我有一個相當基本的,但令人沮喪的問題,基本上是我一直在努力強制輸入字段的行爲更像文本輸入類型(它們不糾正不正確的數字條目,例如「0..7」截斷爲「0」),並讓JS表單驗證和後端驗證完成其工作。但是,雖然我想允許用戶在該字段中輸入任何他們想要的內容(輸入類型=「文本」),但我想要顯示完整的數字鍵盤鍵盤。移動Safari - 如何默認爲全數字鍵盤的小數進入W/O型=「號」,或禁用Safari瀏覽器輸入類型=「數字」修正

原件:

<input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5 /> 

嘗試修復:

工程iPad上,但不能在音樂播放器,如iPod的顯示緊湊數墊不帶小數點的:

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d*"/> 

隱而不宣」在iPod將不起作用,因爲它顯示全文鍵盤,但不會默認爲全鍵盤的「數方」與十進制:

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d+(\.\d*)?"/> 

人有什麼想法?無論是防止移動Safari瀏覽器從修正輸入號碼類型(數字類型顯示在iPod和iPad上正確的鍵盤,但已建成的修正上田當鍵盤隱藏),或迫使鍵盤是全面的iPod數側鍵盤?

FYI: 這聽起來非常相似,我的問題,但是我可能需要不同的解決方案。聽起來像他們所希望的「完全」的數字鍵盤默認,但沒有號碼自動套用格式在輸入其他字符時Safari瀏覽器確實在球場上出現。

Force a numeric keyboard but allow punctuation: HTML5, mobile Safari

+0

顯然,一個「INPUTMODE」屬性也是每個作品: http://html5doctor.com/html5-forms-input-types/ 任何人都瞭解不多呢?說實話,這將是最好的。 – aohm1989

+0

不幸的是,它似乎在這些數字輸入上的輸入模式屬性(需要像關於對無效數字進行自動校正的文本那樣處理),並沒有解決問題:( – aohm1989

回答

1

我知道這是舊的,但我看到這個被問非常多。

爲了防止輸入的號碼類型(以及其他類型)的驗證,你可以使用novalidate屬性<form>元素:

<form novalidate> 
    <input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5> 
</form> 

你仍然得到數字鍵盤,但它不會強制用戶只能輸入數字。

相關問題