如何用false来停止脚本?

时间:2012-01-26 14:18:36

标签: javascript event-handling jquery

<input type="text" id="text">
<span id="click">click</span>


$("#click").click(function(){

    if($("#text").val().length < 1){
       alert("click is empty!");
       false;
    }

    alert("ok");
})

LIVE: http://jsfiddle.net/2Be8a/

为什么在这个例子中如果$ click length == 0我有警报点击是空的(这很好)和下一个警报ok(不好) - 为什么false不会停止脚本? 我知道 - 我可以使用其他,但可能会以false结尾?

4 个答案:

答案 0 :(得分:8)

您需要使用关键字return退出该功能。

$("#click").click(function(){

    if($("#text").val().length < 1){
       alert("click is empty!");
       return false; //Exits the function
    }

    //This will not execute if ($("#text").val().length < 1) == true
    alert("ok");
});

其他信息

  • 您可能还想查看MDN docs on return
  • 正如评论中所建议的,添加返回true的else将是“最佳”。例如:

    $("#click").click(function(){
    
       if($("#text").val().length < 1){
           alert("click is empty!");
           return false; //Exits the function
        }
        else {
            alert("ok");
            return true; //Exits the function
        }
    });
    

基本上,在jQuery处理程序中,return true与不返回任何内容相同(jQuery不采取任何操作)。 return false相当于event.stopPropagation()

我建议您阅读jQuery Events: Stop (Mis)Using Return False以更好地了解使用return false时的实际情况。

答案 1 :(得分:3)

您想要return false;

$("#click").click(function(){

    if($("#text").val().length < 1){
       alert("click is empty!");
       return false;
    }

    alert("ok");
});

答案 2 :(得分:3)

如果你想在此时结束这个功能,我很确定你必须使用return false;

答案 3 :(得分:3)

试试这样:

if($("#text").val().length < 1){
   alert("click is empty!");
   return false;
}

alert("ok");