2013-09-29 33 views
0

我在HTML有一個輸入標籤如何設置數值包含逗號和小數點輸入類型號

<input type="number" id="Amount" placeholder="Please enter somthing" /> 

我設置使用jQuery這樣的輸入值:

$('#Amount').val("78,000.00"); 

除非將輸入標籤的類型更改爲「文本」,否則無法設置此值。我也申請了模式正則表達式,如:

<input type="number" id="Amount" placeholder="Please...." pattern="/^[0-9.,]+$/" /> 

如何解決這個問題?

回答

0

阿卜杜勒,請嘗試使用

<input type="text" id="Amount" pattern="[0-9.,]+" /> 

這似乎是工作。

+0

謝謝Rajesh。但我有一個要求,保持input type =「number」。 –

+1

這用於驗證輸入(例如,在有字母的情況下ng-model正確無效),但不像type =「number」,它不會阻止您輸入這些非數字字符。 – parliament

2

您需要使用標準的JavaScript和HTML數字符號設定值,沒有千位分隔符,並用句點作爲小數點分隔符:

$('#Amount').val("78000.00"); 

或者,也許更好的是,使用普通的JavaScript,因爲它是死的簡單並避免問題「怎麼可能不同的版本在這種情況下,jQuery的工作?」:

document.getElementById('Amount').value = '78000.00'; 

的HTML5 <input type=number>元素使用標準的JavaScript和HTML數字格式的內在價值。根據瀏覽器語言環境(基本設計缺陷IMHO),只有用於輸入值的用戶界面可能是本地化的。因此,當您使用逗號作爲千位分隔符的語言環境時,可以鍵入78,000,但需要瀏覽器將其轉換爲78000.同樣,初始值必須以標準(國際化)格式指定,而不是以本地化格式)。

<input type=number>中不允許pattern屬性。原因是瀏覽器應該知道允許的數字模式並使用它。

+0

感謝您的解釋。但問題是,此代碼在Android手機上運行。所以如果type被設置爲「number」,它就會自動呈現一個數字小鍵盤,這正是我所需要的。任何解決方法使用逗號,但保持 ?? –

+0

恐怕沒有解決方法。您可以使用HTML 5.1草案中定義的'inputmode = numeric',並希望它能夠實現。 –

相關問題