2009-10-09 8 views
1

J'ai un tel bloc de code et lorsque le code trouve un attribut d'erreur qui est définie à l'erreur, il doit empêcher une nouvelle exécution, comment puis-je l'empêcher d'exécution:empêcher l'exécution de la fonction en Javascript et JQuery

$(document).ready(function() { 
    $("#SendMessage").click(function(e) { 
     var elements = $("#contact-area input:text[error=error]").get(); 
     for (var i = 0; i < elements.length; i++) { 
      if ($(elements[0]).attr("error") == "error") { 
       alert("error found"); 
       // Stop execution of whole function 
      } 
     } 
     $("#loaderImage").show(); 
     $("#statusMessage").text("Sending, Please wait..."); 
     window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000"); 
    }); 
}) 

Et comment puis-je faire cela avec JQuery et Javascript, peut-être qu'il y a une fonction prédéfinie pour le faire facilement dans JQuery.

Répondre

1

juste return; lorsque l'erreur se trouve

$(document).ready(function() { 
    $("#SendMessage").click(function(e) { 
     var elements = $("#contact-area input:text[error=error]").get(); 
     for (var i = 0; i < elements.length; i++) { 
      if ($(elements[0]).attr("error") == "error") { 
       alert("error found"); 
       return; 
      } 
     } 
     $("#loaderImage").show(); 
     $("#statusMessage").text("Sending, Please wait..."); 
     window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000"); 
    }); 
}) 
+0

Je l'ai fait mais ça n'a pas marché, je m'y attendais. – Tarik

+1

l'alerte a surgi, mais a continué? –

+1

@Aaron: wtf, vraiment? –

2
$(document).ready(function() { 
    var flag = false; 
    $("#SendMessage").click(function(e) { 
     var elements = $("#contact-area input:text[error=error]").get(); 
     for (var i = 0; i < elements.length; i++) { 
      if ($(elements[0]).attr("error") == "error") { 
       alert("error found"); 
       // Stop execution of whole function 
       flag = true; 
       break; 
      } 
     } 
     if (!flag){ 
      $("#loaderImage").show(); 
      $("#statusMessage").text("Sending, Please wait..."); 
     window.setTimeout(function() { PageMethods.SendMessage(new Message().fullContent(), onSuccess(), onFailed()) }, "4000"); 
     } 
    }); 
}) 

Est-ce que cela répond à vos besoins?

+1

Eh bien, en fait je me attendais quelque chose comme « ce retour fait dans C# », n'est pas là une fonction ou un mot clé pour empêcher l'exécution? peut-être stopExecution(); ? – Tarik

Questions connexes