我正在尝试自动确定信用卡类型。下面的代码有效,但不适用于移动设备。我已经尝试过为移动设备找到解决方案,但我现在无法这样做。
这是jQuery:
(function($) {
$.getCreditCardType = function(val) {
if(!val || !val.length) return undefined;
switch(val.charAt(0)) {
case '4': return 'visa';
case '5': return 'mastercard';
case '3': return 'amex';
case '6': return 'discover';
};
return undefined;
};
$.fn.creditCardType = function(options) {
var settings = {
target: '#credit-card-type',
};
if(options) {
$.extend(settings, options);
};
var keyupHandler = function() {
$("#credit-card-type li").removeClass("active");
$("input[id=authorizenet_cc_type]").val('');
switch($.getCreditCardType($(this).val())) {
case 'visa':
$('#credit-card-type .VI').addClass('active');
$("input[id=authorizenet_cc_type]").val('VI');
break;
case 'mastercard':
$('#credit-card-type .MC').addClass('active');
$("input[id=authorizenet_cc_type]").val('MC');
break;
case 'amex':
$('#credit-card-type .AE').addClass('active');
$("input[id=authorizenet_cc_type]").val('AE');
break;
case 'discover':
$('#credit-card-type .DI').addClass('active');
$("input[id=authorizenet_cc_type]").val('DI');
break;
};
};
return this.each(function() {
$(this).bind('keyup',keyupHandler).trigger('keyup');
});
};
})(jQuery);
答案:我添加了
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
我会赞扬斯科特提供的帮助。
答案 0 :(得分:2)
您是否尝试过使用按键而不是键盘?
var shour = "9:00:00 PM CDT";
var ehour = "12:00:00 AM CDT";
var conver_shour = shour.match(/^(\d+):(\d+)/)[0] + shour.match(/[AP]M/)[0];
var conver_ehour = ehour.match(/^(\d+):(\d+)/)[0] + ehour.match(/[AP]M/)[0];
console.log("shour: " + conver_shour); // The answer should be 09:00PM
console.log("ehour: " + conver_ehour); // The answer should be 12:00AM
或使用您正在监控的输入字段的输入事件?
$(this).keypress(function() {
});
编辑 - 回答您的问题
我不确定你的代码中出现了什么情况。我改变了范围内的一些事情,所以我可以让事情发挥作用。
首先,我将假设HTML看起来像这样。
$(this).on('input', function() {
});
然后JS使用输入事件
<ul id="credit-card-type">
<li>
<form>
<input type="text" id="credit-card-type" />
<input type="text" id="authorizenet_cc_type" />
</form>
</li>
</ul>
答案 1 :(得分:-1)
您可以尝试使用外部API。
集成是微不足道的,您可以将服务器负载转移到第三方,您可以获得最新的信用卡BIN和IIN信息。
有几个提供免费和付费的计划:
https://iinapi.com/
https://www.neutrinoapi.com/