/**
* Função: submeter(acao, prefixo)
* Data: 12/12/2008
* Descrição: Função utilizada para validar os campos obrigatórios de um formulário
Foi criada no intuito de agiizar o desenvolvimento de formulários de pesquisa
Exige que os campos possuam um prefixo passado por parametro e o prefixo deve possuir 4 caracteres
Exige que o formulario possua o nome frm
Trabalha validando o preenchimento dos campos onde há o prefixo passado
e submete o frm em caso de sucesso, caso contrario alerta e muda a cor de fundo dos campos
* Chamada: onClick="submeter('pesquisar','pesq');"
*
*/
/**
* Criado em: 04/03/2009
*
*
* Função. valida(form,acao,submete,obrigatorio);
*
* @param form = objeto forumlario que deseja validar;
* @param acao = valor que deseja que seja setado no input de ação
* @param submete = valor (true ou false) para dizer se o script vai submeter o formulario
* @param obrigatorio = campo opcional que altera o default de 'nao obrigatorios' com o valor (_not)
* para 'obrigatorios' com o valor passado
*
*
* Script tem como funcionalidade validar todos os inputs do formulario
*
* - Compativel com: Firefox 3, Internet Explorer 7, Konqueror 3.5, Chrome 1.0, Opera 9
*
* NOTAS IMPORTANTES
*
* - para o script identificar a acao do form, o input tipo hidden 'acao' deve possuir o um id com o prefixo do form
* em que ele está, da seguinte maneira 'id_form'+'_acao'. Ex: ;
*
* - para o script identificar os blocos de checkboxes, os checkboxes devem estar dentro de um
identificado da seguinte forma:
* o id do div deve ser composto de 'id_form'+_div_ckbox+'id_qualquer'. Ex:
* os checkboxes devem estar dentro do div da seguinte maneira:
* Ex:
*
*
*
*
*
* - para o script identificar os blocos de radio, os radios devem estar dentro de um
identificado da seguinte forma:
* o id do div deve ser composto de 'id_form'+_div_radio+'id_qualquer'. Ex:
* os checkboxes devem estar dentro do div da seguinte maneira:
* Ex:
*
*
*
*
*
*
*
*
*/
function submeter(acao, prefixo)
{
var pode_enviar = true;
var achou = false;
for ( var i = 0; i < document.frm.elements.length; i++ ) {
obj = document.frm.elements[i];
if (obj.name.substring(0,4) == prefixo && obj.getAttribute('obrigatorio') == 1) {
if (obj.type == 'text' || obj.type == 'textarea' || obj.type == 'select') {
obj.style.background = "#FFFFFF";
if (obj.value == '') {
obj.style.background = "#FDF3D9";
pode_enviar = false;
}
}
}
}
if (pode_enviar == true) {
$id('acao').value = acao;
$id('frm').submit();
} else {
cria_msg_html('div_msg','Existem campos obrigatórios não preenchidos.');
return;
}
}
/* funcao de validar */
function valida(form,acao,submete,obrigatorio){
/* declaração de variaveis */
var erro = 0;
var x = 0 ;
var debug = 1;
ckbox_a_lista = new Array ;
ckbox_a_div = new Array;
ckbox_a_error = new Array;
/* variavel que seta o sufixo para nao obrigatorio */
var n_obri = 'not_';
limpaCores();
/ * alerta de erro se não tiver form informado */
if(form.length == 0){
alert('ERRO: form inválido informado');
return false;
}
for (i=0; i
Existem campos obrigatórios não preenchidos!
', '100%', '34', '0', '0');
alinhaDiv('mess');
}
id_interval = setInterval("alinhaDiv('mess')",500);
fade(0,'mess',80);
return false;
}else{
if(document.getElementById("mess")){
removeDiv('mess');
}
/ * alerta de erro se nao encontrar input de acao * /
if(document.getElementById(form.id+'_acao').length == 0){
alert('ERRO: erro ao definir ação. Input '+form.id+'_acao não existe');
}
document.getElementById(form.id+'_acao').value = acao;
/* se o parametro for true é para submeter o form */
if(submete == true || submete == 1){
form.submit();
}else{
return true;
}
}
}
function diferencaEntreDatas(dataMaior,dataMenor) {
Data = dataMaior.replace( " ", "" );
dia1 = Data.substring( 0, 2 );
dia1 = parseInt(dia1,10)+0;
mes1 = Data.substring(3,5);
mes1 = parseInt(mes1,10)-1;
ano1 = Data.substring(6,10);
ano1 = parseInt(ano1,10)+0;
Data = dataMenor.replace( " ", "" );
dia2 = Data.substring( 0, 2 );
dia2 = parseInt(dia2,10)+0;
mes2 = Data.substring(3,5);
mes2 = parseInt(mes2,10)-1;
ano2 = Data.substring(6,10);
ano2 = parseInt(ano2,10)+0;
return ( (Date.UTC(ano1,mes1,dia1,0,0,0)-Date.UTC(ano2,mes2,dia2,0,0,0)) / 86400000);
}
function validarPeriodo(dataInicial, dataFinal) {
diferenca = diferencaEntreDatas(dataFinal.value,dataInicial.value);
var array_tmp = dataInicial.value.split('/');
var dia_ini = array_tmp[0];
var mes_ini = array_tmp[1];
var ano_ini = parseInt(array_tmp[2]);
if (dataFinal.value.length == 10) {
array_tmp = dataFinal.value.split('/');
var dia_fim = array_tmp[0];
var mes_fim = array_tmp[1];
var ano_fim = parseInt(array_tmp[2]);
// diferença de um ano
var ano = diferencaEntreDatas(dataFinal.value,dia_fim+'/'+mes_fim+'/'+(ano_fim-1));
if((ano_ini!=ano_fim && ano_fimmes_fim) || (ano_ini==ano_fim && mes_ini==mes_fim && dia_ini>dia_fim)){
dataFinal.value="";
return false;
}
}
return true;
}