-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 に答える