2012-05-04 12 views
1

私は、私の関数を条件文で実行するつもりです。ステートメントがtrueの場合は、関数を実行し、その逆の場合も同様です。ここでなぜjQuery関数が常に条件付きで実行されるのですか?

コードされています

$(document).ready(function(){ 
    $.fn.validateName = function(){ 
    return true; 
    } 

    $('input[name=name]').blur(function(){ 
    var a = $(this).val(); 
    if (a.length == 0) 
    { 
     $('#alert_name').fadeIn(); 
    } 
    else 
    { 
     $('#alert_name').hide(); 
     $(this).validateName(); 
    }  
    }) 
}) 

validateName機能は、入力値が0以上であるときに、それは見返りに「真」の値を持つ必要がある、唯一の真の値を返すことです。しかし、私の場合、条件に関係なく、関数は常に実行され、 '真の'値を返します。

問題のある箇所を教えてください。ありがとうございました。

+1

実際には、コントロールが 'validateName'関数を入力したと確信していますか? 'return true'この' boolean'値は 'else'ブランチで「受信」されていないので、実際には何もしません。 –

+1

'return $(this).validateName()'を実行する必要があります。そうでなければ 'return true'は効果がありません – devnull69

答えて

2

あなたのぼかし機能から何も戻っていません。

$(document).ready(function() { 
    $.fn.validateName = function() { 
     return true; 
    } 

    $('input[name=name]').blur(function() { 
     var a = $(this).val(); 
     if (a.length === 0) { 
      $('#alert_name').fadeIn(); 
      return false; 
     } 
     else { 
      $('#alert_name').hide(); 
      return $(this).validateName(); 
     } 
    }) 
})​ 
関連する問題