2012-08-02 81 views
1

我們有一個訂單這需要信用卡從移動瀏覽器:< INPUT TYPE =「號碼」 ID =「txtCCNumber」/>iPhone添加逗號輸入號碼字段是因爲JavaScript

而且除了我們有一個JavaScript它會刪除被插入到該領域的任何非整數的字符:

$('input#txtCCNumber').keyup(function(e) 
{ 
    var ccnum = $(this).val(); 
    $(this).val(ccnum.replace(/[^\d]/g, '')); 
}); 

然而,我們才意識到,這似乎是在使用iPhone的人試圖把自己的信用卡,iPhone會自動添加一個逗號每3個數字(因爲JavaScript)。

有沒有人知道一種方法來解決這個JavaScript,所以它的工作原理?

我不想使用type =「tel」。在這種情況下,這不是一個解決方案。

回答

4

就個人而言,我不認爲信用卡號碼是適當的使用input type="number"。根據the spec

具有值爲「number」的type屬性的input元素表示將元素的值設置爲表示數字的字符串的精確控件。

信用卡「數字」是數字字符串,但他們並不確定一個特定的數值,那就沒有意義了用戶使用向上和向下箭頭輸入信用卡號碼是一些瀏覽器附加到輸入字段。你最好的選擇就是使用input type="text"

另外,將JavaScript附加到keyup事件中會讓我這樣的人想要用分隔符輸入他們的信用卡號碼,因爲它更容易找到檢查。只需讓人們輸入他們的卡號,然後再進行標準化。

+4

謝謝,這讓我意識到,我應該可能只是在type =「text」後找到pattern屬性:pattern =「[0-9] *」 – PolishHurricane 2012-08-02 13:11:46

0

我沒有看到你爲什麼使用type =「number」作爲信用卡號字段的原因,因爲你反正用JS刪除非整數值。在這裏使用type =「text」。

-2

我創建了一個小提琴並在我的iphone上進行了測試,它可以正常工作。

http://jsfiddle.net/MH8gj/

相關問題