Ir para conteúdo
Fórum Script Brasil
  • 0

Probleminha Na Funcao Js


Halfar

Pergunta

eu tenho um formulario de dados para o usuario preencher, se o usuario deixar algum campo em branco a funcao js envia uma mensagem de alerta.

ocorre que a mensagem de alerta está sendo exibida corretamente, mas o programa não para, é exibida a mensagem de alerta, o usuario clica em ok e efetua o cadastro, quando deveria ficar o focus no campo correspondente.

Bem abaixo a funcao:

function submit_page(form) {

for (var i=0;i<document.form1.elements.length;i++) {

var x = document.form1.elements;

if (x.value == '') {

alert("Preencha o campo " + x.name);

form.x.name.focus();

break;

}

}

}

note que coloquei um break dentro do for quando é encontrado algum campo em branco, já coloquei return false e tambem não dá certo...

bem, alguém havia sugerido o esquema abaixo:

function submit_page() {

for(var i = 0; i<document.form.elements.length; i++) {

if(document.form.elements.value=="") {

alert("preencha o campo: "+document.form.elements.name)

document.form.elements.focus();

return false;

} // .

tamem não funcinou...

havia aparecido uma janela pop com a resposta citada acima, acho mais legal quando responde fazendo constar a resposta, note que a resposta que alguém havia enviado não consta aqui no post...

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

coloca o return false:

function submit_page(form) {

for (var i=0;i<document.form1.elements.length;i++) {
var x = document.form1.elements[i];
if (x.value == '') { 
alert("Preencha o campo " + x.name);
form.x.name.focus();
 return false; 
}else{
 return true;
}

}
e pergunta no onsubmit() se é falso:
<form (...) onSubmit="if (submit_page(this) == false) return false">

Tenta aí...

Link para o comentário
Compartilhar em outros sites

  • 0

as duas formas, testadas e funcionando:

<script>
function submit_page() {

for(var i = 0; i<document.form.elements.length; i++) {

if(document.form.elements[i].value=="") {
alert("preencha o campo: "+document.form.elements[i].name)
document.form.elements[i].focus();
return false;
}
}
}
</script>


<form action="sua_pagina.html" method="post" onsubmit="return submit_page();" name="form">

<input type="text" name="campo1">
<input type="text" name="campo2">
<input type="text" name="campo3">
<input type="text" name="campo4">
<input type="text" name="campo5">
<input type="submit" value="Testar">
</form>
<script>
function submit_page(form) {

for (var i=0;i<document.form.elements.length;i++) {
var x = document.form.elements[i];

if (x.value == "") { 
	alert("Preencha o campo " + x.name);
	document.form.elements[i].focus();
	return false;
}
}
return true;
}
</script>


<form action="proxima_pagina.html" method="post" onsubmit="return submit_page(this);" name="form">

<input type="text" name="campo1">
<input type="text" name="campo2">
<input type="text" name="campo3">
<input type="text" name="campo4">
<input type="text" name="campo5">
<input type="submit" value="Testar">
</form>

Link para o comentário
Compartilhar em outros sites

  • 0

tambem não deu certo, interessante é que pelo caminho das pedras funciona:

if(CampoBranco(form.Anunciante) == true) {

alert("Informe o nome do anunciante.");

form.Anunciante.focus();

return false;

}

só que assim tenho que fazer um if para cada objeto, da outra forma é bem mais prático,...

bem, mas poderia testar aquele link que passei para ver se não é problema na minha máquina?

Link para o comentário
Compartilhar em outros sites

  • 0

Halfar, já vi aqui também o erro.. não percebi que era a partir do segundo campo. bom vo dar uma olhada no codigo e qualquer coisa te aviso

[editando]

Halfar eis a solucao:

function submit_page(form)
{
	for (var i=0;i<document.form1.elements.length;i++) 
	{
		var x = document.form1.elements[i];
		if (x.value == '') 
		{
			alert("Preencha o campo " + x.name);
			x.focus();
			return false;
		}
	}
return true;
}
é o seguinte, no primeiro IF ele não está vazio então ele caia no ELSE, e no else ele dá return true por isso o formulario seguia. Ah outra coisa, mude na tag <form> para:
<form name="form1" method="post" action="xCadastroUsuario.php4" onSubmit="return submit_page(this)">

tenta aí agora

[/editando]

Link para o comentário
Compartilhar em outros sites

  • 0

não foi desta vez ainda, não funcinou...

funcionou ai?

clicou naquele link que te falei?

Pedi para um amigo meu testar e não funcionou tambem...

mandei o codigo para outro provedor (embora eu saiba que js roda local), mas sabe né... a gente tenta de tudo...

mas tambem não funcionou...

Link para o comentário
Compartilhar em outros sites

  • 0

olha só, eu observei que está aparecendo aquele icone amarelo do js quando há erro na página, este icone aparece rapidamene, tem que ser agil para clicar nele e ver a mensagem de erro..

Eu consegui capturar a mensagem de erro e diz que "x é nulo ou não é um objeto";

bom nulo não é... Agora quanto a ser objeto, será que precisa declarar a variavel x como objeto? E como declaro isto?

Link para o comentário
Compartilhar em outros sites

  • 0

Agora vai...

function submit_page(form)
{
    var x;
    var permissao=true;
    for (var i=0; i<form.elements.length-1; i++)
    {
        x = form.elements[i];
        if (x.value == '')
        {
            alert("Preencha o campo " + x.name);
            permissao=false;
            break;
        }
    }
    return permissao;
}

chame a função assim: onSubmit="return submit_page(this)";

Só preciso avisar que essa forma de saber se o campo está em branco não é muito eficiente. Melhor seria usar expressão regular.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...