1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Uso de span e javascript para validações

Discussão em 'Web Development' iniciada por ifrias, 3 de Junho de 2008. (Respostas: 3; Visualizações: 953)

  1. Minha gente, estou a desenvolver um site bastante simples com recurso a php e mysql para persitência . Tenho um form bastante simples com 4 campos de texto e 1 "<select>" . Tenho também uma função "validarFormProdutos()" em javascript onde pretendo fazer aparecer determinada mensagem de erro com recurso a document.getElementById('id').innerHTML = "erro" . O elemento será do tipo "<span>" . Quando clico no botão "Submeter", para enviar os dados , suspostamente deveria aparecer a tal mensagem de erro . De facto elas aparecem no devido lugar , durante uma fracção de tempo pequenissima. Existe alguma maneira de contornar esta situação ? Está-me a faltar algo do lado do servidor ( código php) para conseguir de alguma maneira mostrar estas mensagens ?Ou é algo mais simples ?

    Agradeço desde já a vossa ajuda.
    Cumprimentos,
    Ivan Frias
     
  2. hostmake

    hostmake Power Member

    Não te está a faltar nada isso devia tratar do assunto.

    Tens a certeza que estás a fazer return false; ? ou ele está a fazer post (refresh) ?
     

  3. Boas hostmake .Obrigado pela resposta .
    É o seguinte : a função em js. não devolve qualquer valor, uma vez que a sua principal função será precisamente mostrar as mensagens de erro . Será que tens algum "code snippet" que me possas fornecer para eu verificar como se processa isto ?

    Neste momento tenho (no ficheiro validacoes.js)

    Código:
    function validarDadosProdutos()
    {
    
    var modelo = document.getElementById('txtMarca');
    if(modelo == "")
    modelo.innerHTML = "<br> Modelo inválido </br>
    
    //... restante código semelhante
    
    } 
    
    Depois, na declaração da área form tenho :
    <form action = "validar_dados.php" onsubmit = "validarDadosProdutos()">
    
    // Aqui vai o form ...
    <input type = "text" id= "txtMarca" />
    
    // Outras cxs de texto
    <input type = "submit"/>
    
    </form>
    De facto parece-me que é feito um refresh . Chego a ver a mensagem por breves microsegundos :) A ideia será fazer a validação no lado do cliente, exibir as mensagens de erro caso existam e mantê-las visiveis . É de notar que este form é redireccionado para um script em php onde é feita nova validação dos dados, para garantir que está tudo OK . Grava se não existirem erros e redirecciona para nova página, caso contrário mostra a página actual decorada com os avisos .

    Provavelmente isto será algo muito simples de resolver, de momento não estou a ver como posso resolver a situação .
    Newbies é assim :(

    Abraço,
    Ivan Frias
     
    Última edição pelo moderador: 4 de Junho de 2008
  4. hostmake

    hostmake Power Member

    É o que eu te disse, ele mostra o erro e faz post, porque tu não estás a impedir que a form processe.

    A função tem que fazer return true; se não houver erros, e return false; sempre que haja um erro.

    Código:
    function validarDadosProdutos()
    {
    
    var modelo = document.getElementById('txtMarca');
    if(modelo == "") {
    modelo.innerHTML = "<br> Modelo inválido </br>
    return false;
    }
    
    //... restante código semelhante
    return true;
    
    } 
    
    <form onsubmit="return validarDadosProdutos()" action="validar_dados.php" >
    
    
     
    Última edição: 3 de Junho de 2008

Partilhar esta Página