Uso de span e javascript para validações

ifrias

Membro
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
 
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) ?
 
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) ?


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:
É 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:
Back
Topo