hola...
alguien me podría decir como puedo detectar que pulsé un ENTER cuando estoy en un TextBox???
muchas gracias por su ayuda
| ||||
Hola JavierB... que tal, estoy en un caso similar, necesito saber cuando el usuario presionó enter, el tipo no puede presionar enter y necesito que no se acepte el enter. Pero a mi textbox ya le he asociado una función javascript que tengo en un archivo js para que me formatee los numeros a dos decimales. Como puedo hacer para llamar a otra funcion llavaeskric en la que validaria el enter y si es enter no pase nada, todo esto antes de que se ejecute el onkeypress |
| ||||
El código es mucho y no lo entiendo bien, solo se que a mi textbox del servidor debo añadirle en el keypress esta función, pero si en vez de escribir numeros presiono el enter pasa algo raro, se me refresca la pagina. Y no quiero que pase eso. La función es la siguiente:
Código:
Y lo que yo le hago es ponerle la siguiente linea:function currencyFormat(fld, milSep, decSep, e,limite,decimales) { if (fld.value.length>limite) return false; 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; // Enter key = String.fromCharCode(whichCode); // Get key value from key code if (strCheck.indexOf(key) == -1) return false; // Not a valid key len = 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(decimales==2) { 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); } } else { if (len == 0) fld.value = ''; if (len == 1) fld.value = '0'+ decSep + '000' + aux; if (len == 2) fld.value = '0'+ decSep + '00' + aux; if (len == 3) fld.value = '0'+ decSep + '0' + aux; if (len == 4) fld.value = '0'+ decSep + aux; if (len > 4) { aux2 = ''; for (j = 0, i = len - 5; 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 - 4, len); } } return false; }
Código:
Y aunque me siento raro pidiendote ayuda a voz.... Gracias Me.txtCostoUnitairo.Attributes.Add("OnKeyPress", "javascript:return(currencyFormat(this,'','.',event,10,2));") |
| ||||
Hola de nuevo. Prueba esto:
Código:
Saludos, function currencyFormat(fld, milSep, decSep, e,limite,decimales) { tecla = (document.all) ? e.keyCode : e.which; if (tecla==13) return false; if (fld.value.length>limite) return false; |
| ||||
Eje!!!!! ya lo arreglé, me puse a ver el código de la función mas detenidamente y para que no me acepte el enter solo le cambié de true a false lo siguiente:
Código:
Gracias por prestarme atención. Eso de javascript no me agrada mucho pero nos da funcionalidades que las podríamos hacer del lado del servidor pero lamentablemente con postback function currencyFormat(fld, milSep, decSep, e,limite,decimales) { if (fld.value.length>limite) return false; 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 false; // Enter key = String.fromCharCode(whichCode); // Get key value from key code if (strCheck.indexOf(key) == -1) return false; // Not a valid key len = 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; ... } |