2013-11-27 29 views
-1

我提交通過AJAX和jQuery的一種形式:Jquery的AJAX不會停止在返回假

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

     e.preventDefault(); 
       var form_texte_texte = tinyMCE.triggerSave(); 
     if($("#form_titre_texte").val()==="") //simple validation 
     { 
      $("#dialog").html(messages.saisir_titre); 
          $("#dialog").attr('title',messages.erreur); 
       $("#dialog").dialog({ 
        buttons: { 
         "Ok": function() { 
          $(this).dialog("close"); 
         }}, 
           show: {effect: 'puff', duration: 100}, 
           hide: {effect: 'puff', duration: 100} 
         }); 
      return false; 
     } 

if ($("#form_tags_texte").val() != "") { 
      var matches = $("#form_tags_texte").val().match(/^[\w -ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ,]+$/); 
        if (matches) { 
        }else{ 
         $("#dialog").html(messages.tags_car); 
           $("#dialog").attr('title',messages.erreur); 
        $("#dialog").dialog({ 
         buttons: { 
          "Ok": function() { 
           $(this).dialog("close"); 
          }}, 
            show: {effect: 'puff', duration: 100}, 
            hide: {effect: 'puff', duration: 100} 
          }); 
       return false; 
        } 
        var tableau_tags = $("#form_tags_texte").val().split(','); 
        $.each(tableau_tags, function(index, chunk) { 
         var taille = chunk.length; 
         if (taille > 20) { 
          $("#dialog").html(messages.tags_taille); 
           $("#dialog").attr('title',messages.erreur); 
        $("#dialog").dialog({ 
         buttons: { 
          "Ok": function() { 
           $(this).dialog("close"); 
          }}, 
            show: {effect: 'puff', duration: 100}, 
            hide: {effect: 'puff', duration: 100} 
          }); 
       return false; 
         } 
        }); 
       } 


     var myData = {titre : $("#form_titre_texte").val(), billet : $("#form_texte_texte").val(), tags_texte : $("#form_tags_texte").val()} 
       var tinymce_editor_id = 'form_texte_texte'; 
     jQuery.ajax({ 
      type: "POST", // HTTP method POST or GET 
      url: "texte", //Where to make Ajax calls 
      dataType:"text", // Data type, HTML, json etc. 
      data:myData, //post variables 
      success:function(response){ 
      $("#responds").before(response); 
      $("#form_titre_texte").val(''); 
      $("#form_tags_texte").val(''); 
         tinymce.get(tinymce_editor_id).setContent(''); 
         //$.getScript("include/ajax_save_billets.js"); 
      }, 
      error:function (xhr, ajaxOptions, thrownError){ 
       alert(thrownError); //throw any errors 
      } 
     }); 

所有的控件都正常工作時返回FALSE,其中除外檢查元素的大小的一個(如果(taille> 20)); 我不明白爲什麼......你能看到這段代碼有什麼問題嗎? 感謝

回答

0

它返回false爲每個功能....ü需要把返回false外

var isValid=true; 
    $.each(tableau_tags, function(index, chunk) { 
     if (taille > 20) { 
     //do something 
     isValid=false; 
     } 
    } 
    if(!isValid) 
    { 
    return isValid 
    } 

類似的東西,將工作

+0

感謝。現在它停止時,它是錯誤的,但如果它是正確的,它不會執行ajax請求... – user2965169

+0

好吧,明白了!變量聲明在循環之前缺少(isValid = true)。 Thnks爲您提供幫助! – user2965169