【问题标题】:Why My jQuery Function always Executed in Conditional?为什么我的 jQuery 函数总是在条件下执行?
【发布时间】:2012-05-04 19:42:07
【问题描述】:

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

代码如下:

$(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时,应该返回'真'值。但在我的情况下,无论条件如何,函数总是被执行并返回“真”值。

请告诉我问题出在哪里。谢谢你。

【问题讨论】:

  • 你确定控件进入validateName函数吗? return true 实际上什么都不做,因为 boolean 值没有在 else 分支中“接收”。
  • 你应该做一个return $(this).validateName() 否则return true 将无效

标签: jquery function conditional-statements


【解决方案1】:

你没有从你的模糊函数返回任何东西。

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

【讨论】:

    猜你喜欢
    • 2021-01-12
    • 2020-05-12
    • 2011-11-25
    • 2020-10-13
    • 2017-12-17
    • 2021-11-09
    • 1970-01-01
    • 2015-03-05
    相关资源
    最近更新 更多