2012-01-26 37 views
2
<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/如何用false停止腳本?

爲什麼在這個例子中,如果$點擊長度== 0我已經提示單擊是空的(這是好事),並在下一個警報OK(不好) - 爲什麼假犯規停止腳本? 我知道 - 我可以使用其他,但是有可能停止使用false?

+1

你試過返回false? – waqasahmed

回答

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時發生了什麼。

3

你想return false;

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

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

    alert("ok"); 
}); 
3

我敢肯定,你必須使用return false;,如果你想在這一點上結束的功能。

3

嘗試這樣的:

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

alert("ok");