Buenos días colegas, nuevamente recurro a ustedes porque ando con un asunto que ya me tiene fuera de lugar!
Resulta que estoy usando jqueryvalidate para validar un formulario, el único aspecto diferente en este caso es que el formulario se encuentra en una modal, en un dialog de jquery. por lo tanto la validacion la declaro al abrir el dialog. asi
Código:
$('#NuevoMotivo').on('click',function() {
$( '#AgregarMotivo' ).dialog('open');
$('#FrmAgregarMotivo').validate({
rules:{
ide: {required:true,minlength:5},
descripcion: {required:true,minlength:5}
},
messages:{
ide : {required:"Campo obligatorio",minlength:"mayor a 5"},
descripcion : {required:"Campo obligatorio",minlength:"mayor a 5"}
},
errorElement: "div"
});
});
De cierta manera esto funciona, me muestra los mensajes de errores, pero no me bloquea el boton submit,, osea si hace la peticion, se supone que no debería dejarme hacer el submit. Este es el formulario.
Código HTML:
<form method="POST" id="FrmAgregarMotivo">
<table class="table">
<tr>
<td>Código: </td><td><input type="text" name="ide" id="id"/></td>
</tr>
<tr>
<td>Descripción: </td> <td><input type="text" name="descripcion" id="desc"/></td>
</tr>
<tr>
<td>Clasificación: </td>
<td>
<select name="atribucion" id="Atribucion">
<option value="ninguno">Ninguno</option>
<option value="1">Retraso en Minutos</option>
<option value="2">Ausentismo en Horas</option>
<option value="3">Ausentismo en Días</option>
<option value="4">Horas Extras</option>
</select>
</td>
</tr>
<tr>
<td>Pasa a Nómina </td> <td><input type="checkbox" name="nomina" id="nomina"/></td>
</tr>
<tr>
<td>Aplica Fines de Semana </td> <td><input type="checkbox" name="finesSemana" id="finesSemana"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" id="crearmotivo" class="btn pull-right" value="Crear" /></td>
</tr>
</table>
</form>
Otra cosa en particular es que cuando yo envío ese formulario lo envío es por ajax,, realmente el submit lo pongo por el validator, pero yo no hago submit por ahí sino recibo por el id del boton mediante jquery y hago una petición ajax..
De igual manera eso no debería tener nada que ver,, el error debe de estar en la implementación o algo así.
Puse el llamado del .validate fuera del .open del dialog y ni los errores me mostraba, osea que debe declararse justo después de hacer el dialog.