2012-05-04 1 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 이상이 될 때, 반환에서 '참'값을 가져야한다. 하지만 제 경우에는 조건에 상관없이 항상 함수가 실행되고 'true'값을 반환합니다.

문제가있는 곳을 알려주십시오. 고맙습니다.

+1

실제로 컨트롤이'validateName' 함수를 입력 했습니까? 'return true'는'else' 브랜치에서'boolean' 값이 "received"되지 않았기 때문에 실제로 아무것도하지 않습니다. –

+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(); 
     } 
    }) 
})​