function autoTAB(event, nomeCampo, tamanhoCampo) {
if (event.keyCode == 8) {
return false;
}
var i = 0; //variável utilizada para determinar o INDICE DO ELEMENTO dentro do FORM
//Se o tamanho do conteudo do campo for igual ao tamanho passado como parametro para dar o AUTOTAB
if (
eval(“document.frmProcesso2.” + nomeCampo + “.value.length”) ==
tamanhoCampo
) {
//Descobrindo o INDEX do elemento atual para poder passar o FOCO para o próximo elemento
for (i = 0; i < document.frmProcesso2.elements.length; i++) {
//Se o elemento DESTE INDICE, acessado pelo LAÇO(FOR) atualmente, tiver o mesmo nome que foi passado como parametro
//então esta é a posição atual do elemento do FORM
if (nomeCampo == document.frmProcesso2.elements[i].name) {
//Mudando o foco para o próximo elemento
document.frmProcesso2.elements[i + 1].focus();
document.frmProcesso2.elements[i + 1].select();
if (document.frmProcesso2.elements[i + 1].length == tamanhoCampo)
document.frmProcesso2.elements[i + 1].clear();
if (document.frmProcesso2.elements[i + 1].name == "orgaoTst") {
document.frmProcesso2.elements[i + 1].value = 5;
document.frmProcesso2.elements[i + 2].focus();
document.frmProcesso2.elements[i + 2].select();
if (document.frmProcesso2.elements[i + 2].length == tamanhoCampo)
document.frmProcesso2.elements[i + 2].clear();
}
break;
}
}
}
}
/**
* impede a ação padrão do browser continuar
*/
function preventDefautPadrao(theEvent) {
if (theEvent.preventDefault) {
theEvent.preventDefault();
} else {
theEvent.returnValue = false;
}
}
function getIndexElementoAtual(nomeCampo) {
var i;
//Descobrindo o INDEX do elemento atual para poder passar o FOCO para o próximo elemento
for (i = 0; i < document.frmProcesso2.elements.length; i++) {
//Se o elemento DESTE INDICE, acessado pelo LAÇO(FOR) atualmente, tiver o mesmo nome que foi passado como parametro
//então esta é a posição atual do elemento do FORM
if (nomeCampo == document.frmProcesso2.elements[i].name) {
break;
}
}
return i;
}
function backspace(e) {
var keycode;
var theEvent;
if (window.event) {
keycode = window.event.keyCode;
theEvent = window.event;
} else if (e) {
keycode = e.which;
theEvent = e;
} else {
return;
}
var nomeCampo = this.name;
//debugger;
if (keycode == 8) {
//backspace
var campoAtual = eval("document.frmProcesso2." + nomeCampo);
if (campoAtual.value.length <= 1) {
preventDefautPadrao(theEvent);
var posEl = getIndexElementoAtual(nomeCampo);
campoAtual.value = "";
campoParaFoco = document.frmProcesso2.elements[posEl – 1];
campoParaFoco.focus();
campoParaFoco.select();
} else {
return true;
}
}
}
function limpaCampos() {}
/**
* Preenche os campos separadamente a partir do número do processo completo no formato numero-digito.ano.orgao.tribunal.vara
*/
function preencheCamposNumeroProcessoCompleto(numCompleto) {
if (!numCompleto) {
return;
} else if (numCompleto == "") {
return;
}
numCompletoArray = numCompleto.trim().split(".");
if (numCompletoArray.length == 5) {
var numProcesso = numCompletoArray[0].split("-");
var numInicioNumero;
if (numProcesso.length == 2) {
numInicioNumero = 0;
} else if (numProcesso.length == 3) {
numInicioNumero = 1;
} else {
return;
}
document.frmProcesso2.numeroTst.value = numProcesso[
numInicioNumero
].trim();
document.frmProcesso2.digitoTst.value = numProcesso[
numInicioNumero + 1
].trim();
document.frmProcesso2.anoTst.value = numCompletoArray[1].trim();
document.frmProcesso2.orgaoTst.value = numCompletoArray[2].trim();
document.frmProcesso2.tribunalTst.value = numCompletoArray[3].trim();
document.frmProcesso2.varaTst.value = numCompletoArray[4].trim();
}
}
/**
* Na ação de colar, pega o número de processo em um dos dois formatos abaixo:
* 1: numero-digito.ano.justiça.tribunal.vara
* 2: classe – numero-digito.ano.justiça.tribunal.vara
* e preenche os todos os campos do número do processo
*/
function formataNumeroProcesso(e) {
var numCompleto = "";
//Google Chrome
if (e && e.clipboardData && e.clipboardData.getData) {
numCompleto = e.clipboardData.getData("text/plain");
preencheCamposNumeroProcessoCompleto(numCompleto);
preventDefautPadrao(e);
//Internet Explorer
} else if (
window.clipboardData &&
window.clipboardData.getData &&
window.clipboardData.getData("Text")
) {
numCompleto = window.clipboardData.getData("Text");
preencheCamposNumeroProcessoCompleto(numCompleto);
preventDefautPadrao(window.event);
//Demais browsers
} else {
//extendendo o tamanho do campo para poder caber o número do processo completo
document.frmProcesso2.numeroTst.maxLength = 99;
document.frmProcesso2.numeroTst.value = "";
document.frmProcesso2.numeroTst.style.color = "white";
setTimeout(function() {
numCompleto = document.frmProcesso2.numeroTst.value;
document.frmProcesso2.numeroTst.maxLength = 7;
preencheCamposNumeroProcessoCompleto(numCompleto);
document.frmProcesso2.numeroTst.style.color = "black";
}, 100);
}
}
document.frmProcesso2.digitoTst.onkeydown = backspace;
document.frmProcesso2.anoTst.onkeydown = backspace;
document.frmProcesso2.orgaoTst.onkeydown = backspace;
document.frmProcesso2.tribunalTst.onkeydown = backspace;
document.frmProcesso2.varaTst.onkeydown = backspace;
document.frmProcesso2.numeroTst.onpaste = formataNumeroProcesso;
Com informações da assessoria de imprensa do TST.
Fonte