Ir para conteúdo

POWERED BY:

Arquivado

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

Gabriel Zago

Função em JS no Dreamweaver de campo obrigatório

Recommended Posts

Bom Dia,

 

Estou elaborando um formulário no Dreamweaver, porém não tenho muito conhecimento em JS, só saco um pouco de C#....

 

No DW possui uma opção de validar os campos (torná-los obrigatórios) - "Validate Form"... só que acontece que estou mexendo nessa função para que ele me dê apenas o erro de 1 campo só quando eu vou "enviar" no botão, e não aquele monte de erro que ele demonstra de uma vez...

 

Estou com um problema nessa minha função... consegui alterar isso, porém quando eu estou enviando aparece o erro normal, mas quando do OK nele... o botão envia, e não está travando como deve ser feito... já tentei dar um "nome_pessoa.focus();" mas não retornou ao campo...

 

Ai embaixo esta toda a função que eu alterei e também a tag do botão enviar:

 

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
	if (val) { nm=val.name; if ((val=val.value)!="") {
	  if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
		if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
	  } else if (test!='R') { num = parseFloat(val);
		if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
		if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
		  min=test.substring(8,p); max=test.substring(p+1);
		  if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
	} 
	 } 
	  } 
	   else 
		 if (test.charAt(0) == 'R' && nm == 'nome_pessoa')
		  alert('Campo NOME Obrigatorio!');}
		   
			if (test.charAt(0) == 'R' && nm == 'rg'){
			 alert('Campo RG Obrigatorio');}}
			 
}

<input name="enviar" type="submit" class="style8" id="enviar" onClick="MM_validateForm('nome_pessoa','','R','rg','','RisNum');return document.MM_returnValue" value="Enviar">

 

Depois do RG ainda vou colocar vários campos obrigatórios... estou precisando mesmo só travar quando da o erro.

 

Agradeço se alguém me ajudar,

Sds...

Gabriel Zago

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que seria só colocar um "return MM_validateForm(...)" no evento onsubmit da tag form

 

Assim se o retorno for return false, o envio vai ser cancelado

 

E ja que você ta alterando o script, depois do alerta, colocar um return false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

function MM_validateForm() { //v4.0

var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);

if (val) { nm=val.name; if ((val=val.value)!="") {

if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');

if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';

} else if (test!='R') { num = parseFloat(val);

if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';

if (test.indexOf('inRange') != -1) { p=test.indexOf(':');

min=test.substring(8,p); max=test.substring(p+1);

if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';

}

}

}

else

if (test.charAt(0) == 'R' && nm == 'nome_pessoa')

alert('Campo NOME Obrigatorio!');

 

if (test.charAt(0) == 'R' && nm == 'rg')

alert('Campo RG Obrigatorio');}}

return false;

 

}

 

 

Alterei na tag do submit do jeito que você falou... "return MM_validateForm('nome_pessoa','','R','rg','','RisNum')"

Acima a função está fazendo o seguinte... Esta bloqueando sim normal... a função chama os 2 erros, quando digito nome passa legal, ai sobra o RG(que também da o erro), só que quando digito algo no RG ele ainda da o erro...

 

 

Abaixo tentei de outra maneira:

 

function MM_validateForm() { //v4.0

var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args);

if (val) { nm=val.name; if ((val=val.value)!="") {

if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');

if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';

} else if (test!='R') { num = parseFloat(val);

if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';

if (test.indexOf('inRange') != -1) { p=test.indexOf(':');

min=test.substring(8,p); max=test.substring(p+1);

if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';

}

}

}

else

if (test.charAt(0) == 'R' && nm == 'nome_pessoa')

alert('Campo NOME Obrigatorio!');

return false;}

 

if (test.charAt(0) == 'R' && nm == 'rg')

alert('Campo RG Obrigatorio');

return false;}

 

}

 

 

Acontece que agora ele só chama o primeiro erro: Campo NOME Obrigatorio!, digito algo depois no campo, mas na hora de enviar ele bloqueia... sem erro sem nd... com RG vazio.

 

 

Abraço...

acho que ta fácil de resolver... mas to apanhando.. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se te ajuda, eu tbm não manjo de JS, mas eu uso esse codigo aqui, é bem simples e funciona direitinho:

 

CODE
<script language="JavaScript">

function ValidaSemPreenchimento(form){

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

var obg = form.obrigatorio;

if (obg==1){

if (form.value == ""){

var nome = form.name

alert("O campo " + nome + " é obrigatório.")

form.focus();

return false

}

}

}

return true

}

</script>

 

<form method="post" action="" onSubmit="return ValidaSemPreenchimento(this)">

<input type="text" obrigatorio="1" name="texto">

</form>

beleza ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei várias funções separadas...

inclusive a sua...

 

<input name="enviar" type="submit" class="style8" id="enviar" onClick="return ValidaSemPreenchimento(this)" value="Enviar">

 

deixei desse jeito so q também não funcionou...

 

você usa DW também?

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu uso. Mas não uso essa função que você disse, na verdade eu nem sabia q o DW tinha uma função pra validar o campos.

Eu uso essa q te passei, você tem q usar a do DW mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não nãoo... só quero que valida os campos pra eles ficarem obrigatórios... acontece q eu tentei várias outras funções so q nao funcionou.. de repente estou fazendo errado...

 

</script><form method="post" action="" onSubmit="return ValidaSemPreenchimento(this)"><input type="text" obrigatorio="1" name="texto"></form>

 

essa dai que você colocou... você trata isso onde?

 

abraço

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.