2016-03-21 13 views
0

Ich möchte mein Formular validieren, bevor ich es benutze, habe ich Tooltips-Skript verwendet, um mein Formular zu validieren, aber immer die Aktion an den Controller in Symfony trotz der Validierung gesendet wird, ist falsch. in Zweig dies mein CodeAktion in einem Formular ohne Validierung eingereicht

 <form id="rappel-form" class="form-horizontal" name="rappelform" method="post" enctype="multipart/form-data" 
              action="{{ path('register') }}"> 

.............. 

/> 

und in meinem Skript Block, dies ist mein Code:

<script> 

     jQuery('#formulaire').ajaxForm({ 

     beforeSubmit: function (arr, $form, options) { 


      if(! $form.valid()) return false; 

      else return true; 
     }, 

     success: function (data) { 
      if(data.dataa!=null){ 
       alert(" succées"); 
      } 
      else 
       alert('erreur d éxécution de la requête'); 


     }, 
     error: function() { 
      //jQuery('#main-content').html("erreur d'éxécution de la requête"); 
      alert('erreur d éxécution de la requête'); 

     } 
    }); 
</script> 

und in document.ready

<script type="text/javascript"> 


    $(document).ready(function() { 
     jQuery.validator.addMethod("regexphone", function (value, element, regexp) { 

      if (regexp.constructor != RegExp) 
       regexp = new RegExp(regexp); 
      else if (regexp.global) 
       regexp.lastIndex = 0; 
      return this.optional(element) || regexp.test(value); 
     }, ""); 
     $(document).ready(function() { 
      $('#formulaire input[type="text"]').tooltipster({ 
       trigger: 'custom', // default is 'hover' which is no good here 
       onlyOne: false, // allow multiple tips to be open at a time 
       position: 'right' // display the tips to the right of the element 
      }); 
      $('#formulaire input[type="password"]').tooltipster({ 
       trigger: 'custom', // default is 'hover' which is no good here 
       onlyOne: false, // allow multiple tips to be open at a time 
       position: 'right' // display the tips to the right of the element 
      }); 
      $('#formulaire input[type="number"]').tooltipster({ 
       trigger: 'custom', // default is 'hover' which is no good here 
       onlyOne: false, // allow multiple tips to be open at a time 
       position: 'right' // display the tips to the right of the element 
      }); 

      $('#formulaire').validate({ // initialize the plugin 
       errorPlacement: function (error, element) { 
        $(element).tooltipster('update', $(error).text()); 
        $(element).tooltipster('show'); 
       }, 
       success: function (label, element) { 
        $(element).tooltipster('hide'); 
       }, 
       rules: { 
        'contact[name]': { 
         required: true, 
         minlength: 2 
        }, 
        'contact[gsmPrimary]': { 
         required: true, 
         'regexphone': /^0[1-9][0-9]{8}$/ 
        }, 
        'contact[lastName]': { 
         required: true, 
         minlength: 2 
        }, 
        'contact[listcountry]': { 
         required: true, 

        } 

       }, 
       messages: { 

        'contact[name]': { 
         required: "{{ 'message.contact.nom.required'|trans }}", 
         minlength: "{{ 'message.contact.nom.min'|trans }}", 
         maxlength: "Votre nom doit faire au plus 50 caractères." 
        }, 

        'contact[gsmPrimary]': { 
         required: "{{ 'message.contact.telephone.required'|trans }}", 
         'regexphone': "{{ 'message.contact.telephone.validation'|trans }}" 
        }, 
        'contact[lastName]': { 
         required: "{{ 'message.contact.prenom.required'|trans }}", 
         minlength: "{{ 'message.contact.prenom.min'|trans }}" 
        }, 
        'contact[listcountry]': { 
         required: "{{ 'message.contact.country'|trans }}", 

        } 

       }, 
       submitHandler: function (form) { // for demo 
        //alert('valid form submitted'); // for demo 
        return false; // for demo 
       } 
      }); 

     }); 
    }); 

</script> 

das Problem, das Skript zu validieren dem Form und zeige mir die Fehler, aber danach das Formular an den Controller übergeben, und ich habe ein großes Problem.

eine Idee, bitte, wie das Problem

+0

Bitte klären Sie Ihr spezifisches Problem oder fügen Sie zusätzliche Details hinzu, um genau zu markieren, was Sie brauchen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Informationen zur Klärung dieser Frage finden Sie auf der Seite [Wie Sie fragen] (http://stackoverflow.com/help/asking). – lrnzcig

+0

das Skript validieren das Formular, zeigen Sie mir den Fehler, und danach schickte das Formular, obwohl es falsch ist. Normalerweise sollte das Formular validiert werden (und die Fehler sollten korrigiert werden) und dann das Formular senden, aber in meinem Fall, das Skript senden Sie das Formular in beiden Fällen (richtig oder nicht). und ich muss das Formular korrekt validieren und danach das Formular senden, sobald alle Fehler behoben wurden –

+0

Ich fand diese [verwandte Antwort] (http://stackoverflow.com/a/11607773/3585500), die 'Rückkehr sagt false' hat nicht funktioniert und 'xhr.abort' genannt. Bemerken Sie auch Ihre 'Form id = 'rappel-form'', aber Ihr jquery Selektor ist' formulaire'. – ourmandave

Antwort

0

Die Skripte auf Ereignisse Elemente angebracht hören zu lösen, die nicht da sind. Unter der Annahme, dass der oben angegebene Code korrekt ist, müssen Sie das Formular gezielt ansprechen, das Sie verbessern möchten.