2011-05-13 22 views
11

estoy usando una validación plugin de jQuery en:Jquery Validar Plugin Evitar la Doble presenten sobre Validación

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Quiero botón de enviar para minusválidos sólo cuando la validación pasa:

Se trataron

$("#submit").click(function() 
{ 
    $(this).attr("disabled", "disabled"); 
}); 

Pero esto desactiva el botón de enviar incluso si la validación falla. ¿Hay alguna manera de desactivar solo el envío cuando se aprueba la validación y se produce un evento de envío?

Respuesta

17

Mirando a través de la fuente, se ve como usted debe ser capaz de anular el invalidHandler, algo a lo largo de las líneas de:

$("#form").validate({ 
    submitHandler: function(form) { 
    // disable your button here 
    form.submit(); 
    }, 
    invalidHandler: function() { 
    // re-enable the button here as validation has failed 
    } 
}); 

A primera vista, esto parece ser la manera en que se desea para hacer esto con el complemento validate, pero desafortunadamente no tengo tiempo atm para virarlo para que funcione.

Editar:

Esto debería hacer 'er (he usado un solo campo de texto con el nombre fname para la prueba):

$('#frm').bind('invalid-form.validate', function(){ 
    // you can add extra validation handling here if you want to 
}); 

$('#frm').validate({ 
    rules: { 
     fname: "required" 
    }, 
    submitHandler: function(form){ 
     $('form input[type=submit]').attr('disabled', 'disabled'); 
     form.submit(); 
    } 
}); 

submitHandler es única éxito una vez que la validación ha pasado.

+0

Lo intenté, el elemento de formulario se desactiva pero el formulario no se envía. ¿Alguna otra idea? –

+0

@chris: ver edición –

+0

sigue teniendo el mismo resultado. ¿Alguna otra idea? –

Cuestiones relacionadas