控制台中没有错误,但该功能似乎没有像预期那样添加破折号。此外,代码在网站上创建格式问题意味着这有问题。
代码:
$('#Inventory_accountNumber').blur(function(){
var accounts = $(this).val;
var accountsNum = [];
accountNum = accounts.split(",");
for(var i=0;i<accountNum.length;i++) {
var newstr = '';
if(accountNum[i].length == 24) {
newstr += accountNum[i].substring(0,4) + '-';
newstr += accountNum[i].substring(4,7) + '-';
newstr += accountNum[i].substring(7,10) + '-';
newstr += accountNum[i].substring(10,14) + '-';
newstr += accountNum[i].substring(14,20) + '-';
newstr += accountNum[i].substring(20,24) + '-';
newstr += '0000-000';
accountNum[i] = newstr;
}
else if(accountNum[i].length == 32) {
newstr += accountNum[i].substring(0,4) + '-'
; newstr += accountNum[i].substring(4,7) + '-';
newstr += accountNum[i].substring(7,10) + '-';
newstr += accountNum[i].substring(10,14) + '-';
newstr += accountNum[i].substring(14,20) + '-';
newstr += accountNum[i].substring(20,24) + '-';
newstr += '0000-000';
accountNum[i] = newstr;
}
}
accountNum.join(',');
$(this).val = accountNum;
});
答案 0 :(得分:2)
这是你的罪魁祸首:
var accounts = $(this).val;
那应该是:
var accounts = $(this).val();
你所拥有的是一个函数引用,而不是函数返回语句的值。
答案 1 :(得分:1)
var accounts = $(this).val();
或
var accounts = $(this);
accountNum = accounts.val().split(",");
如果您尝试在控制台中调试或打印.. inputselector.val打印出整个函数
另外,低于
$(this).val = accountNum;使用$(this).val(accountNum);