我正在嘗試創建一個信用驗證表單。輸入字段無論應始終最多爲19位數字,並且有4位數字由短劃分隔開。到目前爲止,我可以在打字時做到這一點,但粘貼不起作用,編輯幾個數字也不行,表單不會更新。創建信用卡輸入。爲什麼表格不能爲4位數的信用卡添加破折號?
我不想使用任何插件,我的客戶端只使用萬事達卡和維薩卡,這就是爲什麼他們要求19位數的原因。
到目前爲止,我也試圖把我的代碼在一個循環,但循環仍不能正常上覆制和粘貼和所有的場景
var cc = $('#cc-card');
// start loop
setInterval(function() {
jQuery(cc).on('propertychange click blur change change keyup keydown paste', function() {
var cctlength = jQuery(this).val().length;
// out put should always be 0000-0000-0000-0000
switch (cctlength) {
case 4:
var cctVal = jQuery(this).val();
var cctNewVal = cctVal + '-';
jQuery(this).val(cctNewVal);
break;
case 9:
var cctVal = jQuery(this).val();
var cctNewVal = cctVal + '-';
jQuery(this).val(cctNewVal);
break;
case 14:
var cctVal = jQuery(this).val();
var cctNewVal = cctVal + '-';
jQuery(this).val(cctNewVal);
break;
default:
break;
}
});
// end loop
}, 100);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="cc-card" type="text" maxlength="19" placeholder="•••• •••• •••• ••••">
爲什麼不使用像'.replace(/({4})/克, 「$ 1 - 」。);''實施例 「1234567898765432」 .replace(/({。 4})/ g,「$ 1 - 」)。substring(0,19);' – NewToJS
不使用set interval!哎呀! –
@NewToJS我試了一下,並更新到這個; https://jsfiddle.net/1ywb5t3n/3/ - 似乎涵蓋了一切? – TheBlackBenzKid