2009-11-20 22 views
5

im bir form doğrulama yapıyor ve ben hata jquery.scrollTo kullanarak hata Im eğer "konulu Gönder" zaman gitmek giriş alanı doğrulamak istiyorum: Hata iptal doesnt döndüğündejquery'de bir gönderim iptal et

$('#form_inscripcion').submit(function() { 
    //se traen todos los inputs del formulario 
    var $inputs = $('#form_inscripcion :input'); 

    $inputs.each(function() { 
     var encontro_error = validar($(this)); //uses dependence ok 
     if (encontro_error){ 
      $.scrollTo('input#'+$(this).attr('id'), 800); //go to error 
      return false; // dont submit!... but seems not enter here :(
     } 
    }); 

}); 

sorun, teslim edilir , return false; satırını çalıştırmaz.

<form id="form_inscripcion" name="form" method="post" action="some" onsubmit="return false"> 

Ama böylece olacak gönderdiğinde asla zaman

Tamam çalışır. Umarım beni anlarsın :) Teşekkürler :)

cevap

12

böyle e.preventDefault() kullanırsınız:

$('#form_inscripcion').submit(function(e) { 
    //se traen todos los inputs del formulario 
    var $inputs = $('#form_inscripcion :input'); 

    $inputs.each(function() { 
     var encontro_error = validar($(this)); //uses dependence ok 
     if (encontro_error){ 
      $.scrollTo('input#'+$(this).attr('id'), 800); //go to error 
      e.preventDefault(); // Cancel the submit 
      return false; // Exit the .each loop 
     } 
    }); 
}); 

Hemen teslim işlev çağrısı (kod bloğunda ilk çizgi) e parametreyi tedarik emin olun.

6

#each işlevinden dönen değil, #submit. artık şöyle bir şey yapın:

$('#form_inscripcion').submit(function(e) { 
     //se traen todos los inputs del formulario 
     var $inputs = $('#form_inscripcion :input'); 
     var returnVal = true; 
     $inputs.each(function() { 
       var encontro_error = validar($(this)); //uses dependence ok 
       if (encontro_error){ 
         $.scrollTo('input#'+$(this).attr('id'), 800); //go to error 
         returnVal = false; 
         return false; // returning false here breaks out of $.each. 
       } 
     }); 
     return returnVal; 
}); 

Ayrıca sunulmadan formu durdurmak için e.preventDefault() yapabilirdi.

İlgili konular