2013-07-31 22 views
-2

控制檯中沒有錯誤,儘管函數似乎沒有添加破折號。此外,該代碼會在網站上創建格式問題,這意味着有些問題。Uncaught TypeError:對象函數沒有方法'split'

代碼:

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

'var accounts = $(this).val;' - >'var accounts = $(this).val();' –

+1

也',$(this) .val = accountNum;' - >'$(this).val(accountNum);' –

+1

是'accountsNum'(複數)在第3行錯字?其他的參考是'accountNum'(單數)。 – Mathletics

回答

2

這是您的罪魁禍首:

var accounts = $(this).val; 

這應該閱讀:

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

你有什麼有一個函數r eference,而不是函數的return語句的值。

+0

還有另一個地方也有這個問題,我也修正了這個問題。這似乎沒有添加任何破折號的值(當刪除破折號和測試時)。此代碼的實時版本現在也存在顯示問題,這意味着此代碼仍然有問題,但控制檯不報告任何內容。 – ComputerLocus

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

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

如果您嘗試調試或打印在控制檯..一個inputselector.val打印出全功能

此外,向下跌破

$(這).val = accountNum;是設置值的錯誤方法,使用$(this).val(accountNum);

相關問題