2012-10-29 54 views
1

fn在沒有任何麻煩之前創建函數/方法,但是,現在我遇到了一些問題。任何幫助將不勝感激:)

$.fn.formClass = function(class) 
{ 

var bad_class = (class=='input_good') ? 'input_bad' : 'input_good'; 
if($(this).hasClass(bad_class))$(this).removeClass(bad_class); 
$(this).addClass(class); 

} 

,我嘗試使用它這個函數內部:

function check_username() 
{ 

var username = $('input[name="username"]'); 
if(username.val().length<4||username.val.length>20) 
{username.formClass('input_bad');} 
} 

的CONSOLE.LOG是說遺漏的類型錯誤:對象的翻譯:沒有方法'formClass'

非常感謝您的幫助!

+5

'class'是保留關鍵字,它不能是函數參數的名稱。它在你的代碼中命名不同嗎? – mechanicalfish

+0

上面的塊肯定是在底部之前調用的嗎? (假設代碼中的命名有所不同,因此實際上*工作*) –

回答

6

我相信你應該得到一個關於使用變量名class的錯誤,因爲它是一個保留關鍵字。嘗試將其重命名爲其他內容:

$.fn.formClass = function(class_name) { 
    var bad_class = (class_name=='input_good') ? 'input_bad' : 'input_good'; 
    if($(this).hasClass(bad_class))$(this).removeClass(bad_class); 
    $(this).addClass(class_name); 
} 
+0

非常感謝TheZ。它完美的工作!當它允許我時,我會標記爲已回答。 :) –

+0

@RossWilson沒問題,我打開了控制檯並得到了'SyntaxError:意外的保留字'錯誤。 'class'聽起來像是最明顯的候選人,所以我需要一個簡單的'var class =「test」'來引發錯誤:) – TheZ