Jquery ajax在返回false时不会停止

时间:2013-11-27 10:34:36

标签: jquery

我通过ajax和jquery提交表单:

$("#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时,所有控件都正常工作,除了检查元素大小的那个(if(taille> 20)); 我不明白为什么......你能在这段代码中看到错误吗? 感谢

1 个答案:

答案 0 :(得分:0)

每个函数返回False ......你需要把返回false放在

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

类似的东西会起作用