我试图创建一个自动格式化信用卡号码作为用户类型是在一个漂亮的信用卡号码输入字段下面是我有:信用卡号码格式
# Whenever the credit card input changes, update its value.
$(".credit-card-number").on "input", ->
# retrieve the credit card number
creditCardNumber = $(this).val()
# remove everything that's not a number
creditCardNumber = creditCardNumber.replace(/[^\d]+/g, "")
# ensure the value isn't more than 16 characters long
creditCardNumber = creditCardNumber[0..15]
# break apart the value every four numbers
creditCardNumber = creditCardNumber.match(/.{1,4}/g)
# insert spaces in the value when the value isn't null
creditCardNumber = if creditCardNumber? then creditCardNumber.join(" ") else ""
# set the value
$(this).val(creditCardNumber)
这工作完全在下面的HTML:
<input class="credit-card-number" id="credit_card_number" name="credit_card_number" placeholder="Credit card number" type="text">
但是,如果我设定输入的类型number
,每当我更新值和值包含空格,浏览器将值更改为空字符串。有任何想法吗?
是的,只要不要在数值中使用数字输入。 – mekwall
为什么你需要将类型设置为'number'而不是'text'? –
你可以使用正则表达式来检查你的数字格式。由于本地化问题,我个人从不相信浏览器对数字和小数的要求 – sotn