Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的jQuery函数总是在条件语句中执行?_Jquery_Function_Conditional Statements - Fatal编程技术网

为什么我的jQuery函数总是在条件语句中执行?

为什么我的jQuery函数总是在条件语句中执行?,jquery,function,conditional-statements,Jquery,Function,Conditional Statements,我打算在条件语句中执行我的函数。如果该语句为true,则应执行该函数,反之亦然 代码如下: $(document).ready(function(){ $.fn.validateName = function(){ return true; } $('input[name=name]').blur(function(){ var a = $(this).val(); if (a.length == 0) { $('#alert_name

我打算在条件语句中执行我的函数。如果该语句为true,则应执行该函数,反之亦然

代码如下:

$(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”值


请告诉我问题出在哪里。多谢各位

模糊函数没有返回任何内容

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

您真的确定控件进入了
validateName
函数吗
返回true
实际上没有任何作用,因为在
else
分支中未“接收”此
布尔值。您应该执行
返回$(this)。validateName()
否则
返回true
将无效