-2

控制台中不存在任何错误,尽管该功能似乎没有像预期的那样添加破折号。此外,该代码会在网站上产生格式问题,这意味着存在问题。

代码:

    $('#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;

    });

JSFiddle

4

2 回答 2

2

这是你的罪魁祸首:

var accounts = $(this).val;

那应该是:

var accounts = $(this).val();

您所拥有的是函数引用,而不是函数的 return 语句的值。

于 2013-07-31T20:27:01.957 回答
1
var accounts = $(this).val();

或者

var accounts = $(this);
accountNum = accounts.val().split(",");

如果您尝试在控制台中调试或打印.. inputselector.val 会打印出整个功能

还有,在下面

$(this).val = accountNum; 是设置值的错误方式,使用$(this).val(accountNum);

于 2013-07-31T20:27:48.283 回答