2014-10-20 80 views
3

在我的Web應用程序,我有這樣的什麼決定輸入值是用點還是逗號輸出?

<input type="number" value="50.0"> 

在(德語)的輸入欄版本的我的瀏覽器(Safari瀏覽器+火狐+鉻),這是輸出給用戶

50,0 

這是正確和有用的,因爲它是德國數字的標準符號(與歐洲大陸其他大多數國家一樣)。

我的問題是:

將相同的代碼像

50.0 

輸出到誰都有自己的系統語言設置爲英語的用戶?

如果是這樣,這是一種適用於所有(或大多數)瀏覽器的標準嗎?

感謝您的任何幫助。

+0

這應取決於瀏覽器語言設置,而不是系統語言設置。您可以通過將瀏覽器接受並將語言顯示爲英語來爲自己測試該行爲。 – feeela 2014-10-20 11:47:47

+0

不是。我的設置是美國英語,但使用HTML5類型時我會看到歐洲的日期和數字 – mplungjan 2014-10-20 12:14:37

回答

1

這取決於你的十進制符號設置,但在Chrome中我似乎可以輸入一個句點小數點太:

的Windows

Windows 7

OSX

OSX Maverics OSX Maverics

+0

你說得對,我想。在我的Mac上,它也可以在系統設置中設置。不知道。謝謝!除非有人提出更好的解釋,否則我會在接下來的日子裏將你的答案標記爲正確答案。 – Tintin81 2014-10-20 11:34:52

+0

已更新爲OSX – mplungjan 2014-10-20 11:46:26

1

所有這一切,我們真的可以說,除了從特定語境各個瀏覽器實驗上市下來的結果是,該格式是實現相關的。甚至沒有實現定義;瀏覽器不需要記錄他們如何處理這個問題。

HTML5 PR says明確,但很含糊:

這個規範沒有定義接口的用戶代理是什麼用戶 使用;鼓勵用戶代理供應商考慮最好的服務是什麼,以滿足用戶的需求。例如,Persian或 阿拉伯市場的用戶代理可能支持波斯文和阿拉伯文數字輸入 (將其轉換爲上述 所述提交所需的格式)。同樣,爲羅馬人設計的用戶代理可能會以羅馬數字顯示 值,而不是十進制;或(實際上更多 )爲法國市場設計的用戶代理可能在 之前顯示帶有撇號的數值,並且允許用戶以該方式輸入數值, 可在內部將其轉換爲提交格式如上所述。

的非規範implementation notes做得更模糊的情況:

瀏覽器,鼓勵使用當前日期, 時間和數字根據任一區域 的約定隱含的用戶界面通過輸入元素的語言或用戶首選的 區域設置。使用頁面的語言環境將確保與頁面提供的數據的一致性。

實際上,似乎沒有瀏覽器實際使用頁面區域設置(由lang屬性定義)。相反,他們使用瀏覽器區域設置或系統區域設置(不必相同)。

底線是HTML5輸入元素尚未正確本地化,規範甚至沒有說明應該如何進行本地化。如果您需要控制區域設置,例如想要使用語言環境,則需要避免使用<input type="number" ...>並使用合適的庫例程