Ir para conteúdo

POWERED BY:

Arquivado

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

fredzepp

Validar de componentes

Recommended Posts

Pessoal, to com o seguinte problema, tenho uma página q quando tem em torno de 240 caixas de texto pra validar, isto leva em torno de 3 min pra mais, o algoritmo de validação é guloso, tenho q validar tudo mesmo, mas gostaria de saber se existe algo em JavaScript q otmize isto, para q validação termine mais rápido.Valew....

Compartilhar este post


Link para o post
Compartilhar em outros sites

É validação de notas e falta de um diário de notas, tipo a nota é menor ou igual a 10 e maior ou igual a 0, número de faltas, se foi reprovado com as faltas segundo a carga horária da matéria e etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um formulário com os alunos de uma disciplina, eu tenho 4 caixa de texto pra cada aluno média final, ex especial, falta e obs. A pessoa digita a nota e verifico se é <= 10 ou >=0, se possui caracter q não seja número, e se o formato eh x,xx/10,0, isto tb vale pra ex especial, mas soh se a media final for menor q 6, o numero de faltas, verifica se possui algum caracter naum numerico se e menor q a carga horária prevista, o campo obs é prenchido autmaticamente com APRV ou REPR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Durante a entrada das notas, ai a validação eh rápida são poucos campos, e no final qndo há o envio dos dados antes valido tudo, ai demora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho q ficou meio confuso, qndo a pessoa esta entrando com dados de um aluno eu valido e somente os dados do aluno q ela esta digitando, no final no submit q eu valido os dados de todos os alunos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse script valida a média final e serve tb pro ex. especialfunction ValidarNota(campo,nome){ var nota = trim(campo); var tam = nome.length-9; var matricula = nome.substr(9,tam); var nome_aluno = getValueSemFormatar('nome_' + matricula,document.notas); nota = nota.replace(".",","); for (var i = 0; i < nota.length; i++ ){ carac = nota.substr(i,1); if (carac != '0' && carac != '1' && carac != '2' && carac != '3' && carac != '4' && carac != '5' && carac != '6' && carac != '7' && carac != '8' && carac != '9' && carac != ','){ alert('A média final do aluno ' + nome_aluno + '\n deve estar entre 0 (zero) e 10 (dez) e usar vírgula como separador e uma casa decimal após a vírgula.'); setValue(nome,'',document.notas); setFocus(nome,document.notas); return false; } } carac = nota.substr(0,1); if (carac == ','){ alert('O primeiro caracter da média final do aluno ' + nome_aluno + '\n deve ser numérico.'); setValue(nome,'',document.notas); setFocus(nome,document.notas); return false; } if (nota.length > 1){ carac = nota.substr(nota.length-1,1); if (carac == ','){ alert('O último caracter da média final do aluno ' + nome_aluno + '\n deve ser numérico.'); setValue(nome,'',document.notas); setFocus(nome,document.notas); return false; } } nota = formatarValor(nota); if (parseFloat(nota) > 10){ alert('A média final do aluno ' + nome_aluno + '\n deve ser menor ou igual a 10 (dez).'); setValue(nome,'',document.notas); setFocus(nome,document.notas); return false; } if (parseFloat(nota) < 0){ alert('A média final do aluno ' + nome_aluno + '\n deve ser maior ou igual a 0 (zero).'); setValue(nome,'',document.notas); setFocus(nome,document.notas); return false; } var carga_utilizada; var faltas = getValue('faltas_' + matricula,document.notas); if (nota.length > 0 || faltas.length > 0){ if (parseInt(getValue('ch_semestre',document.notas)) > parseInt(getValue('carga_dada',document.notas))) carga_utilizada = parseInt(getValue('ch_semestre',document.notas)); else carga_utilizada = parseInt(getValue('carga_dada',document.notas)); var falta_permitida = parseInt(getValue('faltas_' + matricula,document.notas))*4; if ((parseFloat(nota) >= 6) && (falta_permitida <= carga_utilizada)){ setValue('ex_especial_' + matricula,'',document.notas); } var exame = getValue('ex_especial_' + matricula,document.notas); var nota_aux = nota; if (exame != "" && parseFloat(nota) > 0 && exame != "-" && exame.toUpperCase() != "NC") nota_aux = exame; else nota_aux = nota; if (nota.length > 0){ if ((parseFloat(nota_aux) >= 6) && (falta_permitida <= carga_utilizada)) setValue('obs_' + matricula,'APROV',document.notas); else setValue('obs_' + matricula,'REPRV',document.notas); }// else{// if (parseInt(falta_permitida) <= parseInt(carga_utilizada) )// setValue('obs_' + matricula,'APROV',document.notas);// else// setValue('obs_' + matricula,'REPRV',document.notas); // } } if (nota.length == 1) nota = nota + ",0"; if (nota == "10") nota = nota + ",0"; setValue(nome,nota,document.notas); var obs = getValueSemFormatar('obs_' + matricula,document.notas); if ((nota == "" || getValue('faltas_' + matricula,document.notas) == "") && obs.toUpperCase() != "RETEF") setValue('obs_' + matricula,'',document.notas); return true; }

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.