2011-10-06 12 views
5

Ho una funzione jQuery che vorrei eseguire solo se la convalida del modulo è vera
Ho la validazione e altri jQuery funzionano bene.
il problema è ora sia la convalida che altre funzioni sono in esecuzione nello stesso momento.
Vorrei eseguire l'altra funzione solo se la convalida del modulo è vera. qui è il mio scriptjQuery Se myform.valid() è true, attiva un'altra funzione jQuery?

<script> 
      $(document).ready(function() { 
       $.validator.addClassRules({ 
        fileName: { 
         required: true 
        } 
       }); 
       $("#myform").validate(); 
       if ($("#myform").valid()) { 
        $(function() { 
         $('#myform').submit(function() { 
          var cboxes = ($('input:checkbox:checked').filter(":checked").length); 
          var nboxes = ($(":checkbox:not(:checked)").length); 
          if ((cboxes > 0) && (nboxes > 0)) { 
           confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? '); 
          } else if (cboxes == 0) { 
           alert('Please select atleast One Address \n Where you would prefer to prescribe from.'); 
           return false; 
          } 
          else { 
           return true; 
          } 
         }); 
        }); 
       } 
      }); 
</script> 

Si prega di comunicare come posso ottenere questo fatto?

+0

Qual è il tuo codice fino ad ora? Pubblica parti rilevanti e vedremo. –

risposta

3

Se stai usando standard plugin, tale codice dovrebbe essere sostenuto:

$(document).ready(function() { 
    $("#myForm").validate({ 
     submitHandler: function(form) { 
      SomeFuncHere(); 
     } 
    }); 
}) 

Il codice in submitHandler dovrebbe essere chiamato dopo la convalida di successo.

Edit: in base al codice, provate questo invece:

$("#myform").validate({ 
    submitHandler: function(form) { 
     var cboxes = ($('input:checkbox:checked').filter(":checked").length); 
     var nboxes = ($(":checkbox:not(:checked)").length); 
     var flag = false; 
     if ((cboxes > 0) && (nboxes > 0)) { 
      flag = confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? '); 
     } else if (cboxes == 0) { 
      alert('Please select atleast One Address \n Where you would prefer to prescribe from.'); 
     } 
     else { 
      flag = true; 
     } 
     return flag; 
    } 
}); 
+0

Potrei scegliere i tuoi suggerimenti, quindi ho incollato il mio script hopw puoi aiutarmi meglio – HaBo

+0

Vedi la mia modifica ora. –

+0

Grazie mille ha funzionato perfettamente – HaBo

5

Se stai usando jQuery convalidare plug allora il metodo valid() ritorna un valore booleano per indicare se il modulo convalidato correttamente, quindi si può solo fare:

if ($("#myform").valid()) { 
    CallSomeOtherFunction(); 
} 
+0

Potrei scegliere i tuoi suggerimenti, quindi ho incollato il mio script hopw puoi aiutarmi meglio – HaBo

1

Devi usare .validate().form()

if (!$("#myform").validate().form()) { 
    return false; //doesn't validate 
}else 
{ 
    //form is validated do your work 
} 
Problemi correlati