2009-03-10 14 views

Respuesta

12

sólo una simplificación de Pim (editado para levantar contribución James):


$('#form').submit(formValidated); 
0

En lugar de llamar directamente a la función de presentar llamar a una función de intermediario y hacer una verificación de allí.

es decir

var isSubmitable = false; 

function submitForm() { 
    if(isSubmitable) { 
     myform.submit(); 
    } 
} 
5

¿Qué hay de hacer el cheque dentro del método de confirmación:

$('#form').submit (function() { 
if(formValidated()) 
    return true; 
return false; 
}); 
+0

Él, simple y de trabajo :) –

+1

Solo una nota que probablemente ya conozcas: no olvides hacer también tus validaciones en el lado del servidor, porque al tener javascript deshabilitado se saltará esto. – lpfavreau

0

Otra posible solución:.

$ ('# forma') cambio (function() { (isValid ($ ('# forma')) $ ('# submitBtn') attr ('discapacitados', false):?.. $ ('# submitBtn') attr ('desactivado', true) }) ;

Por supuesto, isValid() Comprueba que todos tus $ ('# forma') elementos cumplen con las reglas de validación. Así es como lo haría.

7

Yo lo siguiente, que trabajó (desactivar botón de enviar y formar enviar):

var condition = true; //check whatever you like 
if(condition) 
    $('input[type=submit]', this).attr('disabled', 'disabled'); 
    $('form').bind('submit',function(e){e.preventDefault();}); 
}else{ 
    $('input[type=submit]', this).removeAttr('disabled', 'disabled'); 
    $('form').unbind('submit'); 
} 
1

Sólo una simplificación de originales respuesta de Nick:

$('#form').submit(formValidated); 
Cuestiones relacionadas