Ir para conteúdo

POWERED BY:

Arquivado

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

danielsjdr

Usar mais de uma função no ONKEYPRESS

Recommended Posts

Pessoal,Tenho q executar dois scripts qdo a pessoa digitar algum falor... um script é para formatar o campo para entradas monetarias... o outro teria q ser para qdo ela apertar enter... só que os dois funcionam com onKeyPress... como resolver isto?Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

bah <_<

 

ja tinha testado isto... vamos aos codigos

 

Mudar de campos com o ENTER:

 

function handleEnter (field, event) {var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;if (keyCode == 13) {var i;for (i = 0; i < field.form.elements.length; i++)if (field == field.form.elements[i])break;i = (i + 1) % field.form.elements.length;field.form.elements[i].focus();return false;}elsereturn true;}

 

Função monetária:

 

function currencyFormat(fld, milSep, decSep, e) {var sep = 0;var key = '';var i = j = 0;var len = len2 = 0;var strCheck = '0123456789';var aux = aux2 = '';var whichCode = (window.Event) ? e.which : e.keyCode;if (whichCode == 13) return true;  // Enterkey = String.fromCharCode(whichCode);  // Get key value from key codeif (strCheck.indexOf(key) == -1) return false;  // Not a valid keylen = fld.value.length;for(i = 0; i < len; i++)if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;aux = '';for(; i < len; i++)   if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);aux += key;len = aux.length;if (len == 0) fld.value = '';if (len == 1) fld.value = '0'+ decSep + '0' + aux;if (len == 2) fld.value = '0'+ decSep + aux;if (len > 2) {aux2 = '';for (j = 0, i = len - 3; i >= 0; i--) {if (j == 3) {aux2 += milSep;j = 0;}aux2 += aux.charAt(i);j++;}fld.value = '';len2 = aux2.length;for (i = len2 - 1; i >= 0; i--)fld.value += aux2.charAt(i);fld.value += decSep + aux.substr(len - 2, len);}return false;}

Jogar um valor para um edit na tela:

 

function passo1() { calc.apuracao.value = calc.valor.value; calc.al1.focus; }

Chamada:

<input name="valor" type="text" id="valor" onKeyPress="return(currencyFormat(this,',','.',event));return handleEnter(this, event)" onKeyDown="passo1()" value="0" size="10" maxlength="15" >

Algum erro a primeira vista?

 

Tentei unir os dois e já deu cara de erro (o financeiro e o ENter)

 

function currencyFormat(fld, milSep, decSep, e) {var sep = 0;var key = '';var i = j = 0;var len = len2 = 0;var strCheck = '0123456789';var aux = aux2 = '';var whichCode = (window.Event) ? e.which : e.keyCode;if (whichCode == 13){  var i;  for (i = 0; i < field.form.elements.length; i++)   if (field == field.form.elements[i])   break;   i = (i + 1) % field.form.elements.length;   field.form.elements[i].focus();   return false;}elsereturn true;key = String.fromCharCode(whichCode);  // Get key value from key codeif (strCheck.indexOf(key) == -1) return false;  // Not a valid keylen = fld.value.length;for(i = 0; i < len; i++)if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;aux = '';for(; i < len; i++)   if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);aux += key;len = aux.length;if (len == 0) fld.value = '';if (len == 1) fld.value = '0'+ decSep + '0' + aux;if (len == 2) fld.value = '0'+ decSep + aux;if (len > 2) {aux2 = '';for (j = 0, i = len - 3; i >= 0; i--) {if (j == 3) {aux2 += milSep;j = 0;}aux2 += aux.charAt(i);j++;}fld.value = '';len2 = aux2.length;for (i = len2 - 1; i >= 0; i--)fld.value += aux2.charAt(i);fld.value += decSep + aux.substr(len - 2, len);}return false;}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi da seguinte maneira:

 

<input name="valor" type="text" id="valor15" onKeyPress="return(currencyFormat(this,',','.',event))" onKeyDown="return handleEnter(this, event)" onBlur="passo1()" >
O caso agora é que, o campo seguinte é do tipo DISABLED... ai da erro falando q nao pode dar foco nele... tem como contornar isto?

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.