Estoy trabajando con CodeIgniter donde manejo 2 vistas con un formulario en cada una de ellas. Aplicó validaciones para los campos usando jQuery Validate donde las condiciones son las mismas. En la vista #1, las validaciones se ejecutan sin ningún problema pero en la vista #2 puedo escribir datos erroneos e incluso dejar vacíos los campos pero las validaciones no se ejecutan y me permite guardar la información en la base de datos.
Adjuntos los códigos:
php
*****VISTA #1***** <div id="main"> <div class="content"> <div id="formularioNuevoNodo"> <?php /*****Creación de formulario*****/ //Apertura de formulario echo form_fieldset('REGISTRO DEL NUEVO NODO'); echo form_open('nuevoNodo/insertNewNode', $atributos); //form_open(controlador/metodo, atributos); //Creación de los campos 'name' => 'numeroNodo', 'id' => 'numeroNodo', 'value' => '', 'placeholder' => 'Ejemplo: 5.1, 6.2, 1000' ); 'name' => 'ubicacionCTC', 'id' => 'ubicacionCTC', 'value' => '', 'placeholder' => "Ejemplo: 1, 2A, B', 1500" ); 'name' => 'nivelCTC', 'id' => 'nivelCTC', 'value' => '', 'placeholder' => 'Ejemplo: 15, 18, 31, 34', ); '1:1' => '1:1', '2:1' => '2:1', '3:1' => '3:1', '4:1' => '4:1', ); $idTiposNodos = 'id = "tipoNodo"'; 'Modelo 1000' => 'Modelo 1000', 'Modelo 2000' => 'Modelo 2000', 'Modelo 3000' => 'Modelo 3000', 'Modelo 4000' => 'Modelo 4000', ); $idModelosNodos = 'id = "modeloNodo"'; 'name' => 'latNodo', 'id' => 'latNodo', 'value' => '', 'placeholder' => 'Ejemplo: 29.012345' ); 'name' => 'lngNodo', 'id' => 'lngNodo', 'value' => '', 'placeholder' => 'Ejemplo: -110.012345' ); 'name' => 'direccionNodo', 'id' => 'direccionNodo', 'value' => '', 'placeholder' => 'Ejemplo: Av. Veracruz #123' ); 'name' => 'Guardar', 'id' => 'btnGuardar', 'class' => 'btn btn-primary', 'value' => 'Guardar' ); 'name' => 'Limpiar', 'id' => 'botonLimpiar', 'class' => 'btn btn-primary', 'type' => 'Reset' ); 'name' => 'Regresar', 'id' => 'botonRegresar', 'class' => 'btn btn-primary' ); ?> <table> <tr> <td><?php echo form_label('Nodo:')."<br>"; ?></td> <td><?php echo form_input($campoNumeroNodo)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Ubicación en CTC:')."<br>"; ?></td> <td><?php echo form_input($campoUbicacionCTC)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Nivel:')."<br>"; ?></td> <td><?php echo form_input($campoNivelCTC)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Tipo:')."<br>"; ?></td> <td><?php echo form_dropdown('tipoNodo', $tiposNodos, '1:1', $idTiposNodos); ?></td> </tr> <tr> <td><?php echo form_label('Modelo:')."<br>"; ?></td> <td><?php echo form_dropdown('modeloNodo', $modelosNodos, '1:1', $idModelosNodos); ?></td> </tr> <tr> <?php $coloniasArray[$listaColonias[$i]->coloniaId] = $listaColonias[$i]->nombreColonia; } ?> <td><?php echo form_label('Colonia:')."<br>"; ?></td> <td><?php echo form_dropdown('nombreColonia', $coloniasArray); ?></td> </tr> <tr> <td><?php echo form_label('Latitud:')."<br>"; ?></td> <td><?php echo form_input($campoLatitudNodo)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Longitud:')."<br>"; ?></td> <td><?php echo form_input($campoLongitudNodo)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Dirección:')."<br>"; ?></td> <td><?php echo form_input($campoDireccionNodo)."<br>"; ?></td> </tr> <td> <?php echo form_submit($botonGuardar); echo form_button($botonLimpiar, 'Limpiar'); echo form_button($botonRegresar, 'Regresar'); //Cierre de formulario echo form_close(); //cierre del fieldset echo form_fieldset_close(); ?> </td> </tr> </table> </div><!-- Fin div formularioNuevoNodo --> </div><!-- Fin div content --> </div><!-- Fin div main -->
php
*****VISTA #2***** <div id="main"> <div class="content"> <?php /*****Creación de formulario*****/ //Apertura de formulario de busqueda de información echo form_fieldset('MODIFICAR INFORMACIÓN DE NODO'); ?> <div id="formularioModificarNodo"> <?php echo form_open('modificarNodo/searchInfoNode', $atributosSearchInfoNode); //form_open(controlador/metodo, atributos); ?> <div id="divBusquedaNodo"> <?php //Creación de los campos de búsqueda de nodo //Campo de búsqueda de nodo 'name' => 'updateNumeroNodo', 'id' => 'updateNumeroNodo', 'placeholder' => 'Ejemplo: 5.1, 6.2, 1000' ); //Botón de búsqueda 'name' => 'submit', 'id' => 'botonBuscar', 'class' => 'btn btn-primary' ); //Creación de los campos con la información del nodo //Campos con la información del nodo 'name' => 'updateUbicacionCTC', 'id' => 'updateUbicacionCTC', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'updateNivelCTC', 'id' => 'updateNivelCTC', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'updateTipoNodo', 'id' => 'updateTipoNodo', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'updateModeloNodo', 'id' => 'updateModeloNodo', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'updateLatNodo', 'id' => 'updateLatNodo', 'value' => '', 'pattern' => '^[0-9]{2}(\.[0-9]{0,6})?$', 'disabled' => 'TRUE' ); 'name' => 'updateLngNodo', 'id' => 'updateLngNodo', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'updateDireccionNodo', 'id' => 'updateDireccionNodo', 'value' => '', 'disabled' => 'TRUE' ); 'name' => 'Guardar', 'id' => 'botonGuardar', 'class' => 'btn btn-primary', 'value' => 'Guardar', 'disabled' => 'TRUE' ); 'name' => 'Regresar', 'id' => 'botonRegresar', 'value' => 'Regresar', 'class' => 'btn btn-primary', 'disabled' => 'TRUE' ); ?> <table> <tr> <td><?php echo form_label('Nodo:'); ?></td> <td><?php echo form_input($campoNumeroNodo); ?></td> <td><input type="hidden" name="campoNodoId" id="campoNodoId"></td> <td><?php echo form_button($botonBusqueda, 'Buscar'); ?></td> </tr> </table> </div><!-- Fin divBusquedaNodo --> <div id="divInformacionNodo"> <table> <tr> <td><?php echo form_label('Ubicación en CTC:')."<br>"; ?></td> <td><?php echo form_input($campoUbicacionCTC)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Nivel:')."<br>"; ?></td> <td><?php echo form_input($campoNivelCTC)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Tipo:')."<br>"; ?></td> <td><?php echo form_input($campoTipoNodo); ?></td> </tr> <tr> <td><?php echo form_label('Modelo:')."<br>"; ?></td> <td><?php echo form_input($campoModeloNodo); ?></td> </tr> <tr> <?php $idColonia = 'id = "updateNombreColonia"'; $coloniasArray[$listaColonias[$i]->coloniaId] = $listaColonias[$i]->nombreColonia; } ?> <td><?php echo form_label('Colonia:')."<br>"; ?></td> <td><?php echo form_dropdown('updateNombreColonia', $coloniasArray, '', $idColonia); ?></td> <td><input type="hidden" id="oldColoniaId"></td> </tr> <tr></tr> <tr> <td><?php echo form_label('Latitud:')."<br>"; ?></td> <td><?php echo form_input($campoLatitudNodo)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Longitud:')."<br>"; ?></td> <td><?php echo form_input($campoLongitudNodo)."<br>"; ?></td> </tr> <tr> <td><?php echo form_label('Dirección:')."<br>"; ?></td> <td><?php echo form_input($campoDireccionNodo)."<br>"; ?></td> </tr> <tr> <td> <?php echo form_button($botonGuardar, 'Guardar'); echo form_button($botonRegresar, 'Regresar'); ?> </td> </tr> </table> </div><!-- Fin divInformacionNodo --> <?php //Cierre de formulario searchInfoNode echo form_close(); ?> </div><!-- Fin DIV dataModificarNodo --> <?php echo form_fieldset_close(); ?> </div><!-- Fin DIV content --> </div><!-- Fin DIV main -->
java
*****Archivo javascript***** $(document).ready(function(){ functions.newNodeFormValidation(); functions.updateNodeFormValidation(); }); var functions = { newNodeFormValidation:function(){ //Método para validar que se ingresen caracteres alfanúmericos $.validator.addMethod("regex", function(value, element, regexp){ var re = new RegExp(regexp); return this.optional(element) || re.test(value); }, "¿Está ingresando bien el dato?"); //Inicializamos el método de validación del formulario $('#nuevoNodo').validate({ //Establecemos las reglas rules: { numeroNodo: { required: true, regex: "[a-zA-Z0-9_]+$" }, ubicacionCTC: { required: true, minlength: 1, maxlength: 20 }, nivelCTC: { required: true }, tipoNodo: { required: true }, modeloNodo: { required: true }, nombreColonia: { required: true }, latNodo: { required: true, regex: "^[0-9]{2}(\.[0-9]{0,6})?$" }, lngNodo: { required: true, regex: "^[-][0-9]{2,3}(\.[0-9]{0,6})?$" }, direccionNodo: { required: true }, }, //Asignamos los mensajes para cada campo messages: { numeroNodo: { required: 'Ingresa el número del nodo' }, ubicacionCTC: { required: 'Ingresa la ubicación en CTC o HUB' }, nivelCTC: { required: 'Ingresa el nivel del nodo' }, tipoNodo: { required: 'Ingresa el tipo de nodo' }, modeloNodo: { required: 'Ingresa el modelo del nodo' }, nombreColonia: { required: 'Ingresa el nombre de la colonia' }, latNodo: { required: 'Ingresa la latitud del nodo' }, lngNodo: { required: 'Ingresa la longitud del nodo' }, direccionNodo: { required: 'Ingresa la dirección del nodo' }, } }); },//Fin método newNodeFormValidation updateNodeFormValidation: function(){ //Método para validar que se ingresen caracteres alfanúmericos $.validator.addMethod("regex", function(value, element, regexp){ var re = new RegExp(regexp); return this.optional(element) || re.test(value); }, "¿Está ingresando bien el dato?"); //Inicializamos el método de validación del formulario $('#ModificarNodo').validate({ //Establecemos las reglas rules: { updateUbicacionCTC: { required: true, minlength: 1, maxlength: 20 }, updateNivelCTC: { required: true }, updateTipoNodo: { required: true }, updateModeloNodo: { required: true }, updateNombreColonia: { required: true }, updateLatNodo: { required: true, regex: "^[0-9]{2}(\.[0-9]{0,6})?$" }, updateLngNodo: { required: true, regex: "^[-][0-9]{2,3}(\.[0-9]{0,6})?$" }, updateDireccionNodo: { required: true }, }, //Asignamos los mensajes para cada campo messages: { updateUbicacionCTC: { required: 'Ingresa la ubicación en CTC o HUB' }, updateNivelCTC: { required: 'Ingresa el nivel del nodo' }, updateTipoNodo: { required: 'Ingresa el tipo de nodo' }, updateModeloNodo: { required: 'Ingresa el modelo del nodo' }, updateNombreColonia: { required: 'Ingresa el nombre de la colonia' }, updateLatNodo: { required: 'Ingresa la latitud del nodo' }, updateLngNodo: { required: 'Ingresa la longitud del nodo' }, updateDireccionNodo: { required: 'Ingresa la dirección del nodo' }, } }); }//Fin método updateNodeFormValidation }//Fin var functions
Espero puedan ayudarme. Gracias por su atención.