function isCampoPreenchido(objCampo, msgErro, flgCriticaHidden){
var flgOK = true;
//só critica se o objCampo existir no document
if(!objCampo){
return true;
}
//pega tipo do objCampo ou, caso tenha mais de um, do primeito elemnto do objCampo
var tipo = (objCampo.type ? objCampo.type : objCampo[0].type);
if(tipo=='hidden'){
//as vezes, é interessante que se o campo for hidden eu não critique,
//nesse caso é só passar false para flgCriticaHidden ou não passar
//nada, mas se eu quiser forçar a criticar é so passar o parâmetro
//como no caso de querer criticar campos de tabelas dinâmicas
if(flgCriticaHidden){ //se recebeu parametro e recebeu true
//se foi passado flag indicando que deve criticar HIDDEN
if(Trim(objCampo.value) == '') flgOK = false;
}else{
//só critica se o objCampo não for hidden
return true;
}
}else if(tipo=='select-one'){
//se o primeiro elemento da combo está selecionado, não está preenchido corretamente
if(objCampo.selectedIndex==0) flgOK = false;
}else if(tipo=='select-multiple'){
//inicialmente assumo que nenhum elemento do listbox está selecionado
flgOK = false;
for(var i=0; i
if(objCampo.options[i].selected) flgOK = true;
}
}else if( (tipo=='radio') || (tipo=='checkbox') ){
//inicialmente assumo que nenhum elemento do checkbox ou radiobutton está checado
flgOK = false;
if(objCampo.length){
//caso exista mais de um checkbox/radio com esse nome, varro todos
for(var i=0; i
if(objCampo[i].checked) flgOK = true;
}
}else if(objCampo.checked){
//caso só exista um checkbox/radio com esse nome, verifico se ele está checado
flgOK = true;
}
}else{ //text, textarea, file, ...
if(Trim(objCampo.value) == '') flgOK = false;
}
if(flgOK){ //se objCampo esta preenchido ok
return true;
}else{
if((msgErro)&&(msgErro!=null)&&(Trim(msgErro)!='')){
//exibe msgErro e põe foco no objCampo só se
//foi passada alguma msgErro com conteudo
alert(msgErro);
if(tipo!='hidden'){
if(objCampo.type)
objCampo.focus();
else
objCampo[0].focus();
}
}
return false; //objCampo não preenchido ok
}
}
Nenhum comentário:
Postar um comentário