Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tony_lu

validação com for

Recommended Posts

Pessoal...estou terminando de fazer uma validação...e estou com um problema...

 

Tenho campos que possui nomes iguais...e só mudam um numero final...ex:

 

<input type="text" onchange="objnome(this)" name="tam1" maxlength="30">

<input type="text" onchange="objnome(this)" name="tam2" maxlength="30">

<input type="text" onchange="objnome(this)" name="tam3" maxlength="30">

<input type="text" onchange="objnome(this)" name="tam4" maxlength="30">

 

<input type="text" onchange="objnome(this)" name="larg1" maxlength="30">

<input type="text" onchange="objnome(this)" name="larg2" maxlength="30">

<input type="text" onchange="objnome(this)" name="larg3" maxlength="30">

<input type="text" onchange="objnome(this)" name="larg4" maxlength="30">

 

Preciso verificar se o campo possui conteudo...se possue... preciso que seja apenas numerico... posso fazer varios ifs...porém ficaria enorme...e gostaria de usar o for na função abaixo... mas nao estou conseguindo...dá erro:

 

function validaform ( obj ){

var erro = '';

if ( !erro && obj.nome.value.length < 5) erro = 'Preencha o campo nome';

if ( !erro && obj.email.value.length < 5) erro = 'Preencha o campo email';

for (i=1;i<=4;i++) {

 

if ( !erro && !parseInt(obj.qty.value) ) erro = 'Preencha o campo Tamanho';

if ( !erro && !parseInt(obj.qty.value) ) erro = 'Preencha o campo Largura';

 

}

 

if ( erro )

{

alert( erro );

return false;

} else {

setTimeout('document.getElementById("cotacaoform").reset()', 3000 );

return true;

}

return true;

}

Alguem pode me dar uma luz??

 

Thanks

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algumas coisas bem estranhas...

function objnome ( obj ){
var erro = '';
if ( !erro && obj.value.length < 5) erro = 'Preencha o campo nome';
if ( !erro && obj.value.length < 5) erro = 'Preencha o campo email';
for (i=1;i<=4;i++) {

if ( !erro && !parseInt(obj.value) ) erro = 'Preencha o campo Tamanho';
if ( !erro && !parseInt(obj.value) ) erro = 'Preencha o campo Largura';

}
você declarou uma função, e tá chamando outra no onchange?

Porque tava o .nome e o .email??

E oque era pra ser "cotacaoform" ? Coloque mais simplificado o HTML, para que possamos entender qual input se refere à oq...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você usa essa função?

oq você passa como objeto?

 

this?

document.getElementById("id")??

document.getElementByTagName("input")??

 

com o getElementByTagName você consegue faze isso tranquilo

var qtdInputs = document.getElementByTagName("input").length;
var obj = document.getElementByTagName("input");
for(var i =0; i<=qtdInputs; i++){
	alert(obj[i].value);
}

não sei se isso pode te ajudar, mas espero q sim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola galera...

Eu nao postei o cod inteiro porque é enorme e achei que ninguem fosse ter paciencia...

 

Bom ai esta uma parte do formulario em html:

 

<form id="cotacaoform" action="cotacaoenvia.php" method="post" target="iframecotacao" onsubmit="return validaform( this );">

 

<input type="hidden" name="_acao" value="cotacao" />

<h3> Dados Cadastrais </h3>

<b>Nome:<small>*</small></b><br />

<input class="default" onchange="objnome(this)" type="text" name="nome" maxlength="50"><br />

<b>Empresa</b><br />

<input class="default" onchange="objnome(this)" type="text" name="empresa" maxlength="50"><br />

<input type="text" onchange="objnome(this)" name="tam1" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="tam2" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="tam3" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="tam4" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="larg1" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="larg2" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="larg3" maxlength="30"><br />

<input type="text" onchange="objnome(this)" name="larg4" maxlength="30"><br />

<input class="envia" type="submit" value="Enviar Mensagem" />

</form>

E aqui a função:

 

function validaform ( obj ){

var erro = '';

 

if ( !erro && obj.nome.value.length < 5) erro = 'Preencha o campo nome';

if ( !erro && obj.email.value.length < 5) erro = 'Preencha o campo email';

if ( !erro && obj.origem.value.length < 3) erro = 'Preencha o campo origem';

if ( !erro && obj.destino.value.length < 3) erro = 'Preencha o campo destino';

 

if ( erro )

{

alert( erro );

return false;

} else {

setTimeout('document.getElementById("cotacaoform").reset()', 3000 );

return true;

}

return true;

}

Essa função faz algumas verificações de varios campos do fomulario...se tiver erro...ele trava...com a mensagem..caso nao tiver ele limpa os campos e manda para cotacaoenvia.php ... queria incluir nesta função esse for para conferir varios campos...ao inves de eu fazer varios ifs... deu para entender???

Mais uma vez agradeço a paciencia!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.