2014-02-06 54 views
0

我正在查看jQuery中使用字符數的各種方法,並找到一個並修改它並實現它,但我遇到了一些問題。只是想知道你們是否可以給我任何指示我可能會出錯的地方。jQuery Char計數問題

這是我的代碼:

function countChar(val) 
{ 
    var len = val.value.length; 

    if (len >= 500) 
    { 
     val.value = val.value.substring(0, 500); 
     $('.stat').text(0); 
    } 
    else 
    { 
     $sv = (500 - len);   
     $('.stat').text($sv); 
     if ($sv <= 20) 
     {   
      $('.stat').css({'border': '1px solid #C33', 'color': '#C33', 'background-color': '#F6CBCA'}); 
     } 
     else if ($sv >= 21 && $sv <= 150) 
     { 
      $('.stat').css({'border': '1px solid #9F6000', 'color': '#9F6000', 'background-color': '#FEEFB3'}); 
     } 
     else 
     { 
      $('.stat').css({'border': '1px solid #090', 'color': '#090', 'background-color': '#DFF2BF'}); 
     } 

    } 
} 

countChar($('#notes').get(0)); 
$('#notes').keyup(function() { 
    countChar(this); 
}); 

我( '#notes')只是一個普通的文本區域。

我有它here小提琴:

正是基於這個問題找到here

當我實現它我的網頁上,它沒有顯示出來。看着螢火蟲,它給我以下錯誤:

TypeError: val is undefined

從我的理解,這個錯誤意味着你需要使用var聲明它。

我已經這樣做了,然後我得到以下錯誤:

TypeError: val.value is undefined

我曾嘗試做上val.value一個變種,但拋出了一個語法錯誤。

我曾嘗試在countChar(VAR使用VAL),它提供了以下錯誤:

SyntaxError: missing formal parameter

我似乎無法看到我錯過了什麼,因爲它工作在小提琴就是這個樣子我希望它。

任何指針將不勝感激。提前致謝。

+0

你正在傳遞一個元素,出於某種原因,你認爲定義一個變量是一個好主意,其中將該元素傳遞給該函數的參數應該是? – adeneo

+0

我不完全確定問題是什麼,因爲你提供的jsfiddle例子似乎工作正常。 – EmileKumfa

+0

我無法在小提琴上覆制問題。我不知道爲什麼FF和Chrome會拋出這些錯誤。 – Chris

回答

0

這個問題似乎是,我已經把它放在document.ready之外,甚至沒有意識到我有。它現在就像一個魅力