我的目标是制作一个类似于http://jquerycreditcardvalidator.com/的表单。我曾尝试查看该页面的源代码,但这超出了我的专业知识,所以我尝试使用jquery重写代码。我还想在输入前两位数后屏蔽输入。
问题:
清除显示的CC图像,似乎仅适用于FireFox,并且无法预测。 一旦输入被屏蔽以符合信用卡类型,光标就会被抛到输入框的末尾
我在这里做错了什么?必须有一个更简单的方法来做到这一点
使用代码填充:http://jsfiddle.net/nh7qqfgx/
(为了说服,彩色矩形div是实际卡片标识的占位符)
代码:
$('#ccnumber').validateCreditCard(function (result) {
// this will execute everytime the value of the `#cc_number` field changes
if (result.card_type == null) {
$("#ccHolder").removeClass();
}
if (result.card_type != null) {
cardtype = result.card_type.name;
$("#ccHolder").addClass(result.card_type.name);
if (result.card_type.name === 'visa') { //if the card is Visa
$("#ccnumber").mask("9999-9999-9999-9999", { placeholder: " ", autoclear: false });
}
if (result.card_type.name === 'amex') { //if the card is American Express
$("#ccnumber").mask("999-999999-999999", { placeholder: " ", autoclear: false });
}
if (result.card_type.name === 'mastercard') { //if the card is MasterCard
$("#ccnumber").mask("9999-9999-9999-9999", { placeholder: " ", autoclear: false });
}
if (result.card_type.name === 'discover') { //if the card is Discover
$("#ccnumber").mask("9999-9999-9999-9999", { placeholder: " ", autoclear: false });
}
if (result.card_type.name === 'JCB') { //if the card is JCB
$("#ccnumber").mask("9999-9999-9999-9999", { placeholder: " ", autoclear: false });
}
if (result.card_type.name === 'Diners Club') { //if the card is Diners Club
$("#ccnumber").mask("999-999999-99999", { placeholder: " ", autoclear: false });
}
}
});