Duvidas com JavaScript

7 respostas
oliveirarenan

Pessoal, dentro do seu jsp eu coloquei um trecho de javascript.
Aonde eu tenho um array que vou armazenar minhas mensagens e uma chamada de uma função gen´rica q fica em um arquivo js.

var msg = new Array(5);
	msg ["nomeContato"] = "Nome do Contato não preenchido.";
	msg ["cargoContato"] = "Cargo do Contato não preenchido.";
	msg ["telefoneContato"] = "Telefone do Contato não preenchido.";
	msg ["enderecoContato"] = "Endereço do Contato não preenchido.";
	msg ["cepContato"] = "CEP do Contato não preenchido.";

	var form = document.forms[0];

	function Confirmar(){
		validarForm(form,msg);
	}

Dai no meu js, tenho o seguinte código.

//Função para verificar se o radio foi selecionado.
function checkRadio( campoRadio, msg ){
	if (campoRadio.length>0){
		for ( i=0; i < campoRadio.length; i++ ){
			if(campoRadio[i].checked){
				return true;
			}
		}
	} else {
		if(campoRadio.checked){
			return true;
		}
	}
	alert(msg);
	return false;
}

//Função para verificar se o campo select foi selecionado.
function checkSelect (campoSelect, msg){
	if (campoSelect.selectedIndex ==0 ){
		alert (msg);
		campoSelect.focus();
		return false;
	}else{
		return true;
	}	
}

//Função para verificar se o campo texto foi digitado.
function checkText (campoTexto, msg) {
	if (Trim(campoTexto.value)==''){
		alert (msg);
		campoTexto.focus();
		return false;
	}else {
		return true;		
	}
}

//Função para validação de campos numéricos.
function isNumber(campo){
	campo.value = Trim(campo.value);
	str = campo.value;
	if ( isNaN(getNumber(str)) ){
		alert ("O campo deverá ser apenas numérico");
		campo.value = "";
		campo.focus();
		return false;
	}
	return true;
}

function validarForm(form, arrayMsg){
	numEl = document.forms[0].elements.length;
	for(var i=0; i < numEl; i++ ){
		// valida os campos que estiverem no arrayMsg
	    if (arrayMsg[document.forms[0].elements[i].name]!=null){
	    	alert("If Array");
			// text field
			if (document.forms[0].elements[i].type == "text"){
				if(!checkText(document.forms[0].elements[i],arrayMsg[document.forms[0].elements[i].name])){
					alert("checkText");
					return false;
				}
			}
			// Radio
			if(document.forms[0].elements[i].type == 'radio'){
			  var refObjRadio = eval("document.forms[0]." + document.forms[0].elements[i].name)
			  if(!checkRadio( refObjRadio, arrayMsg[document.forms[0].elements[i].name] )){
				 return false;
			  }
			}
			// select
			if(document.forms[0].elements[i].type == 'select-one'){
			   if (!checkSelect (document.forms[0].elements[i], msg[document.forms[0].elements[i].name])){
			     return false;
			   }
			}
	    }
	}
	return true;
}

Pessoal, tentei generalizar ao máximo…
mas esta dando pau nessas funções: checkText, checkRadio e checkSelect

Quem tiver alguma sugestão, me ajude por favor.

Grato,

7 Respostas

bandrade

muito simples falar q tá dando pau…
aonde? como? q tipo? quando?

furutani

Use o Firefox e instale a extension JavaScript Debugger

Assim vc pode descobrir o erro mais facilmente

MarcioTavares

Opa! Não existe função Trim em Javascript! Remove isso que funciona.

Procura no Google que existe um monte de implementações de Trim, Ltrim e Rtrim.

[]'s

oliveirarenan

Márcio, é exatamente isso…nossa, viajei na maionese.

Mas valeu mesmo…bons olhos…rs

falow
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

bandrade

puts… teve a manha marcio…

MarcioTavares

:smiley:

Esquenta não… isso acontece. Hoje mesmo eu dei um mole desse tipo… coloquei um len(var) :shock: hehehehehe…

Mas aí, essa tua função genérica é maneira. Bem bolada.

Abraços :thumbup:

oliveirarenan

É isso ae Marcio…valeu cara…

falow
:wink:

Criado 6 de abril de 2005
Ultima resposta 7 de abr. de 2005
Respostas 7
Participantes 4