entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Validar Formulario html5 de forma nativa antes de mandar a AJAX

el problema es que le doy al administrador la posibilidad de generar los campos que requiera para cada formulario, entonces la validación no la puedo hacer por Javascript, por lo que decidí guardar los atributos de las etiquetas y al momento de generar los inputs, traigo sus etiquetas de la base de datos y así los valido con las etiquetas HTML5 como required, type="number"...etc...
el AJAX es el siguiente:

$(function(){
        //crear interacción con el botón de Agregar Registro
        $('body').on('click','#btnAgregarDinamico',function(event){
            event.preventDefault();
            var id=$(this).attr('data-id_Formularioo');
            alert (id);
            $.ajax({
                type: "POST",
                url: "../funciones/insercionDinamica.php",
                data: $('#FormDinamicoAgregar').serialize()+"&id="+id,
                        success: function(msg){
                             $("#totalFormulario").html(msg)    
                     },
                error: function(){
                alert("failure");
                }
        });
    });
});

todo funciona bien, pero cuando le doy click al

 echo "<input type='submit' data-id_Formularioo='".$id."' class='btn btn-danger' id='btnAgregarDinamico'></input>";

entra aajax y manda el formulario aunque este vacío.... tengo varios días con el problema y no encuentro la solución... Gracias por su tiempo y ayuda.

1 Respuesta

2votos

GusGarsaky Puntos5480

Si no quieres validar con JavaScript (que es lo más común), puedes validar asociando expresiones regulares a dichos controles.

Por ejemplo, para el tipo email:

<input type="email" placeholder="Ingrese su email" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}">

Para número de teléfono:

<input type="text" required pattern="(\+?\d[- .]*){7,13}" title="international, national or local phone number">

Para una contraseña fuerte:

<input title="Como mínimo 8 dígitos conteniendo al menos, una minúscula, un número y una mayúsucla" type="text" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" required>

Aquí tienes una pequeña introducción a las expresiones regulares:

0voto

fack comentado

si, eso si ya lo tengo, solo puse

<script>  $(document).ready(function(){
        $('body').on('submit','#FormDinamicoAgregar',function(event){
            alert("entro");
            var id=$('#FormDinamicoAgregar').attr('data-id_formulario');
            alert (id);
            $.ajax({
                data: {'id' :id },
                type: "POST",
                url: "../funciones/insercionDinamica.php?id="+id,
                //data: $('#FormDinamicoAgregar').serialize(),//+"&id="+id,
                        success: function(msg){
                             $("#totalFormulario").html(msg)    
                     },
                error: function(){
                alert("failure");
                }
        });
        });     
    });</script>

ahora necesito saber como poner en el data, un id, y aparte el serialize del formulario, en donde primero llegara el id al archivo php, y luego ya usará el serialize para hacer la inserción de los datos en la base de datos..... Gracias por prestar un poco de tu tiempo

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta