2014-10-01 112 views
1

輸入型「號碼」任意插入串是從那裏得到插入字符串(任何種類的)任何方式:如何檢索HTML

<input type="number" id='zipCode' name='zipcode' /> 

我想在控制檯獲得價值:當插入任何無效的字符串(包含任何字母或其它特殊字符串)其也是相同的當實際離開字段留空

console.log(document.getElementbyId('zipCode').value); 

是給只是一個空白輸出。但我想檢索實際插入的值,以便我可以區分並驗證空白字段,並顯示錯誤消息「郵編空字段!」和錯誤信息的無效字符串「Invalid Zipcode!」有什麼辦法從輸入type ='number'字段中檢索任何類型的插入字符串?

+1

你可以在球場上附加的關鍵事件,並手動檢查..或使輸入類型=文字和自己做驗證.. – 2014-10-01 10:34:34

+1

在這個類似的問題,看一看,並回答HTTP:// stackoverflow.com/a/18853513/3870761 – sergioFC 2014-10-01 10:35:29

+0

如果您想獲取不是數字的值,爲什麼要使用輸入類型編號?這些類型的輸入應該消除對腳本的需求,而不是使任務更加艱鉅。 – RobG 2014-10-01 10:37:03

回答

4

用於ZIP代碼的HTML輸入字段應爲類型=文本和使用模式屬性來提供提示給瀏覽器

一個數字的郵政編碼是 - 在一個小的方式 - 誤導。

數字應該表示數值。郵政編碼不會添加或減少或參與任何數字操作。 12309 - 12345不計算從斯克內克塔迪市區到我附近的距離。

郵政編碼不是數字 - 他們只是碰巧用限制字母編碼 - 我建議避免使用數字字段。信用卡或社交號碼同樣如此

您可以做<input type="text" pattern="\d*">。這將導致數字鍵盤出現在iOS(和Android?)上。也許是pattern="[0-9]*"

「的文本字段,仍然可以 包含空格和其他特殊字符是<input type="text" inputmode="numeric"/>但是據我所知,而INPUTMODE是 建議WhatWG則還不支持的語義正確的標記通過任何瀏覽器,其 的目的是向用戶展示一個設備上的數字小鍵盤,該設備上有 ,但仍然表現爲文本輸入。「 - davidelrizzo

+0

你讓我!....我想要這個功能獲取手機上的數字鍵盤,我的實際問題與sencha-touch xtype:'numberfield'有關,我必須使用它(參見[here](http !//stackoverflow.com/questions/26134892/how-to-get-actual-inserted-value-from-xtype-numberfield-in-sencha-touch))....然後我在html中檢查了type ='number',並得到相同的東西,所以我認爲它與某個地方相關!... – 2014-10-01 11:07:17

+2

要說郵政編碼不是數字,因爲從另一個郵政編碼減去不給數字你兩個ZIP之間的距離是使用一個相當狹窄的單詞「數字」的觀點。檢查你的首選參考([Merriam Webster](http://www.merriam-webster.com/dictionary/number)?[Wikipedia](http://en.wikipedia.org/wiki/Number)?),你會發現數字包括「標籤」。雖然我無法閱讀規範作者或瀏覽器供應商的意見,但我懷疑他們在這裏爲「數字」的定義是「限制字母表0-9」。他們爲什麼會在乎數字的意思? – Josh 2014-10-01 14:26:35

+0

這裏真正的問題是你想允許用戶輸入什麼限制字母,什麼是你可以提供的最好的用戶界面?如果你想允許的不僅僅是ZIP,而且[ZIP + 4](http://en.wikipedia.org/wiki/ZIP_code#ZIP.2B4)(其中包括 - 字符),然後鍵入=「number」won'不要這樣做。此外,您需要根據自己的情況來決定是否存在許多用戶代理的「微調箭頭」在您的應用程序中有意義。因此,模式限制可能是最好的選擇,儘管它不會將鍵盤限制爲Android上的數字(至少不是我測試過的任何版本)。 – Josh 2014-10-01 14:32:59