我有html/php/js中的數字文本框,用戶將輸入數字爲4到7位數字。不過,我希望用戶看到每三位數字之間的空格。數字文本框:顯示空格
例如,
User inputs: 8000
User sees: 8 000
User inputs 9100045
User sees: 9 100 045
我怎麼能這樣實現這個輸入仍然是一個int而不會被轉換成以空格的字符串?
謝謝!
我有html/php/js中的數字文本框,用戶將輸入數字爲4到7位數字。不過,我希望用戶看到每三位數字之間的空格。數字文本框:顯示空格
例如,
User inputs: 8000
User sees: 8 000
User inputs 9100045
User sees: 9 100 045
我怎麼能這樣實現這個輸入仍然是一個int而不會被轉換成以空格的字符串?
謝謝!
對於標準文本框,這是不可能的。
使用JavaScript,您可以在每次按鍵添加空格後根據需要重新格式化內容。然而,正如@Jukka K. Korpela指出的那樣,這可能會讓用戶感到非常困惑。另一種方法是進行此更改onchange
,以便僅在文本框失去焦點時才進行格式設置。
然後在服務器端,刪除所有空格以返回一個整數。
在每次按鍵之後重新格式化意味着在鍵入1234之後,用戶將其轉換爲1 234,然後當他鍵入5時,內容會轉換爲12 345等。我不確定這是否具有良好的可用性。這可能會讓人困惑。輸入整個數字(onchange,onblur)後重新格式化將不那麼令人困惑,但可能無法達到預期目的。讓用戶輸入1 234 567(並且在客戶端和服務器端都可以正確處理)可能會更好。 –
@ JukkaK.Korpela好點,我編輯了這篇文章。就我個人而言,我認爲任何對用戶輸入的改變都會讓他們感到困惑,而不是幫助。 – Curt
在PHP中執行此操作。對於例如,如果用戶在這裏輸入的輸入:
<input type="text" name="number" />
在PHP中,獲得的是:
$number = intval(trim($_POST["number"])); // Get it as number
$number = number_format($number, 2, ' ', ' ');
// The value will be 5 00 000 for $number = 500000
$number = number_format($number);
// The value will be 6 000 000 for $number = 6000000
更多信息請參見Number Format。希望這可以幫助! :)
當用戶將數據輸入到文本框中時使用javascript/jQuery,然後在將其存儲到服務器端時刪除所有非數字值。 –
這是一個jQuery插件,它將執行輸入掩碼:http://digitalbush.com/projects/masked-input-plugin/在使用它之前,您仍然需要將字符串轉換爲數字,但是您應該獲得沒有空格的值。 – Mathletics
'number_format'完成這項工作。 –