2012-06-07 57 views
1

我有html/php/js中的數字文本框,用戶將輸入數字爲4到7位數字。不過,我希望用戶看到每三位數字之間的空格。數字文本框:顯示空格

例如,

 User inputs: 8000 

     User sees: 8 000 

     User inputs 9100045 

     User sees: 9 100 045 

我怎麼能這樣實現這個輸入仍然是一個int而不會被轉換成以空格的字符串?

謝謝!

+0

當用戶將數據輸入到文本框中時使用javascript/jQuery,然後在將其存儲到服務器端時刪除所有非數字值。 –

+0

這是一個jQuery插件,它將執行輸入掩碼:http://digitalbush.com/projects/masked-input-plugin/在使用它之前,您仍然需要將字符串轉換爲數字,但是您應該獲得沒有空格的值。 – Mathletics

+0

'number_format'完成這項工作。 –

回答

2

對於標準文本框,這是不可能的。

使用JavaScript,您可以在每次按鍵添加空格後根據需要重新格式化內容。然而,正如@Jukka K. Korpela指出的那樣,這可能會讓用戶感到非常困惑。另一種方法是進行此更改onchange,以便僅在文本框失去焦點時才進行格式設置。

然後在服務器端,刪除所有空格以返回一個整數。

+0

在每次按鍵之後重新格式化意味着在鍵入1234之後,用戶將其轉換爲1 234,然後當他鍵入5時,內容會轉換爲12 345等。我不確定這是否具有良好的可用性。這可能會讓人困惑。輸入整個數字(onchange,onblur)後重新格式化將不那麼令人困惑,但可能無法達到預期目的。讓用戶輸入1 234 567(並且在客戶端和服務器端都可以正確處理)可能會更好。 –

+0

@ JukkaK.Korpela好點,我編輯了這篇文章。就我個人而言,我認爲任何對用戶輸入的改變都會讓他們感到困惑,而不是幫助。 – Curt

1

在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。希望這可以幫助! :)