2010-10-01 4 views
2

Bonjour Je souhaite valider un formulaire à l'aide d'un bouton, mais ce bouton appelle une fonction .ajax pour envoyer le formulaire.Jquery Validator: Valider le formulaire sans le soumettre

Comment puis-je faire cela? J'ai cherché.

J'avais un sens mais je me demande s'il y a un moyen facile.

La façon dont j'accompli c'est:

Javascript

jQuery(document).ready(function() { 
     $(ACCION).validate({ 
       rules: { 
        StartDate: { 
         required: true, 
         australianDate: true 

        }, 
        EndDate: { 
         required: true, 
         australianDate: true 

        } 

       } 
      }); 

     }); 
function Mostrar() { 
     var textBox = $("#StartDate"); 
     var textBox2 = $("#EndDate"); 
     if (textBox.valid() == true & textBox2.valid() == true) { 
      var fechaIn = document.getElementById('FechaInicio').value; 
      var fechaFin = document.getElementById('FechaFin').value;     
      jQuery(NOMBRE_GRID).setGridParam({ postData: { fecha1: textBox.val(), fecha2: textBox2.val()} }) 
          .trigger('reloadGrid'); 
     } 
    } 

HTML

<form id="myForm" method="post" action=""> 

      <div class="editor-label"> 
       <%= Html.Label("Fecha Inicio") %> 
      </div> 
      <div class="editor-field"> 
       <%=Html.TextBox("StarDate", DateTime.Now.ToString("yyyy-MM-dd"))%> 
      </div> 
      <div class="editor-label"> 
       <%= Html.Label("Fecha Final") %> 
      </div> 
      <div class="editor-field"> 
       <%=Html.TextBox("EndDate", DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))%> 
      </div>   
      <input class="button button-big" name="Submit" type="button" value="Buscar Registros" 
       onclick="Mostrar();" /> 
</form> 

Je me demande qu'au lieu d'utiliser valid() est-il un moyen de valider le formulaire entier.

Merci!

Répondre

3

Vous pouvez également appeler .valid() sur la forme elle-même pour provoquer une validation complète:

if($("#myForm").valid()) { 
+0

Oui cela a fonctionné :) Merci – Sanchitos

+0

@Sergio - bienvenue :) –

0

Une autre option:

HTML

  <div class="editor-label"> 
       <%= Html.Label("Fecha Inicio") %> 
      </div> 
      <div class="editor-field"> 
       <%=Html.TextBox("StarDate", DateTime.Now.ToString("yyyy-MM-dd"))%> 
      </div> 
      <div class="editor-label"> 
       <%= Html.Label("Fecha Final") %> 
      </div> 
      <div class="editor-field"> 
       <%=Html.TextBox("EndDate", DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))%> 
      </div>   
      <input class="button button-big" name="Submit" type="submit" value="Buscar Registros"> 

Javascript

jQuery(document).ready(function() { 
$(ACCION).validate({ 
       submitHandler: function (form) { 
        var fechaIn = document.getElementById('StartDate').value; 
        var fechaFin = document.getElementById('EndDate').value; 
        jQuery(NOMBRE_GRID).setGridParam({ postData: { fecha1: fechaIn, fecha2: fechaFin} }) 
           .trigger('reloadGrid'); 
       }, 
       rules: { 
        StartDate: { 
         required: true, 
         australianDate: true 

        }, 
        EndDate: { 
         required: true, 
         australianDate: true 

        } 

       } 
      }); 
    }); 
Questions connexes