Foros del Web » Programando para Internet » Javascript »

Solo numeros con decimal

Estas en el tema de Solo numeros con decimal en el foro de Javascript en Foros del Web. Hola. En un post pasado ( http://www.forosdelweb.com/f12/solo-...egular-378226/ ) encontré el siguiente script Código: <script language="JavaScript"> <!-- var nav4 = window.Event ? true : false; function ...
  #1 (permalink)  
Antiguo 10/01/2011, 14:14
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Solo numeros con decimal

Hola.

En un post pasado (http://www.forosdelweb.com/f12/solo-...egular-378226/) encontré el siguiente script


Código:
<script language="JavaScript">
<!--
var nav4 = window.Event ? true : false;
function acceptNum(evt){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57, '.' = 46
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57) || key == 46);
}
//-->
</script>
Pero no me funciona con IE, ¿que es lo que falla en ese navegador ???

Gracias
  #2 (permalink)  
Antiguo 10/01/2011, 15:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Solo numeros con decimal

lee sobre el objeto event
  #3 (permalink)  
Antiguo 10/01/2011, 19:46
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Solo numeros con decimal

IsaBelM, que clase de respuesta es esa??? la idea del foro es que pueda resolver su problema acá..

bueno me di el tiempo de escribir el código para poder ayudarte y espero te sirva, si tienes algún comentario te lo responderé a la brevedad

var textToNum=function(obj){
var txt=document.getElementById(obj);
txt.onkeydown=function(e){
e = e ? e : window.event;
var key=e.keyCode;

var inArray=function(value, array) {
for(v in array) if (array[v]==value) {
return true;
}
return false;
}

var skip="8:9:13:46:190:116".split(":");
if (!/^\d/.test(String.fromCharCode(key)) && !inArray(key, skip) && !(key>=35 && key<=40))
return false;
}
}

textToNum("text1");
  #4 (permalink)  
Antiguo 11/01/2011, 12:04
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Solo numeros con decimal

Cita:
Iniciado por boodrox Ver Mensaje
IsaBelM, que clase de respuesta es esa??? la idea del foro es que pueda resolver su problema acá..

bueno me di el tiempo de escribir el código para poder ayudarte y espero te sirva, si tienes algún comentario te lo responderé a la brevedad

var textToNum=function(obj){
var txt=document.getElementById(obj);
txt.onkeydown=function(e){
e = e ? e : window.event;
var key=e.keyCode;

var inArray=function(value, array) {
for(v in array) if (array[v]==value) {
return true;
}
return false;
}

var skip="8:9:13:46:190:116".split(":");
if (!/^\d/.test(String.fromCharCode(key)) && !inArray(key, skip) && !(key>=35 && key<=40))
return false;
}
}

textToNum("text1");

Muchas gracias !!!
  #5 (permalink)  
Antiguo 12/01/2011, 07:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Solo numeros con decimal

Cita:
Iniciado por boodrox Ver Mensaje
IsaBelM, que clase de respuesta es esa??? la idea del foro es que pueda resolver su problema acá..
esa respuesta viene dada del hecho que javascript es case-sensitive
Cita:
var nav4 = window.Event ? true : false;
entonces creo entender que hay un error.
aparte de que el titulo no es muy descriptivo y en el cuerpo no explica nada. si solo se permiten número decimales o se permiten enteros y decimales


puedes tener el concepto que quieras tener sobre para lo que sirve un foro. mi concepto es que es una herramienta didáctica para encaminar al usuario hacia lo que tiene que hacer, opinar sobre procedimientos, etc... pero no para dar el trabajo


por otro lado, me gustaría que me explicases ese código que te hizo gastar tu tiempo. asignarle funciones a variables?? usar un ciclo?? dividir una cadena?? supongo que lo has copiado de algún sitio, has visto que "funciona" y, no te has parado ni un momento a analizarlo. lo que hace ese código se puede hacer en unas 3 líneas, objeto event, una expresión regular, obtienes el carácter pulsado y usas la función test(). no te las des de listo
  #6 (permalink)  
Antiguo 19/01/2011, 12:30
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Solo numeros con decimal

Cita:
Iniciado por IsaBelM Ver Mensaje
esa respuesta viene dada del hecho que javascript es case-sensitive

entonces creo entender que hay un error.
aparte de que el titulo no es muy descriptivo y en el cuerpo no explica nada. si solo se permiten número decimales o se permiten enteros y decimales


puedes tener el concepto que quieras tener sobre para lo que sirve un foro. mi concepto es que es una herramienta didáctica para encaminar al usuario hacia lo que tiene que hacer, opinar sobre procedimientos, etc... pero no para dar el trabajo


por otro lado, me gustaría que me explicases ese código que te hizo gastar tu tiempo. asignarle funciones a variables?? usar un ciclo?? dividir una cadena?? supongo que lo has copiado de algún sitio, has visto que "funciona" y, no te has parado ni un momento a analizarlo. lo que hace ese código se puede hacer en unas 3 líneas, objeto event, una expresión regular, obtienes el carácter pulsado y usas la función test(). no te las des de listo


IsaBelM, el código que escribí se me ocurrió ese mismo día, no es nada difícil y cada concepto está donde debe estar, si lo analizas tiene bastante lógica.

te animo a que aprendas a fondo javascript y luego escribas tus comentarios cuestionando al autor.

saludos
  #7 (permalink)  
Antiguo 19/01/2011, 13:30
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Solo numeros con decimal

Cita:
Iniciado por boodrox Ver Mensaje
IsaBelM, el código que escribí se me ocurrió ese mismo día, no es nada difícil y cada concepto está donde debe estar, si lo analizas tiene bastante lógica.

te animo a que aprendas a fondo javascript y luego escribas tus comentarios cuestionando al autor.

saludos
no hace falta que me animes, ya lo hago yo sola. a esta invito yo
Cita:
function fnc(evt) {
ascii = (evt.keyCode) ? evt.keyCode : evt.charCode;
if (ascii == 8) return true;
pat =/\d|\./;
key = String.fromCharCode(ascii);
return pat.test(key);
}
  #8 (permalink)  
Antiguo 19/01/2011, 14:08
 
Fecha de Ingreso: enero-2011
Mensajes: 6
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Solo numeros con decimal

Cita:
Iniciado por IsaBelM Ver Mensaje
no hace falta que me animes, ya lo hago yo sola. a esta invito yo
IsaBelM, tu función presentará problemas al momento de ser utilizado por un usuario, por ejemplo:

*además tiene problemas de lógica y está malo :("

donde supuestamente se válida? onkeydown? onkeyup? sabes las diferencias de ambas? prueba tú propio código y mira que ocurre, luego prueba mi código y aprecia el resultado.

que ocurre si presiono la tecla "enter" para validar o "tab" o "F5" para refrescar o "inicio" para ir al principio del texto? o la tecla "final" ?
o incluso algo mas típico las teclas (flechas) para retroceder, avanzar etc etc.

es ahí donde entra en uso el split de la cadena, en la cual están las teclas extras que se deben validar.


tal parece eres una estudiante, así que te invito a analizar mejor el código.

sería bueno que en vez de cuestionar al autor y al código, lo intentes mejorar y agregar por ejemplo la capacidad de validar el contenido cuando un usuario pega (desde el porta papeles) un valor no numérico. De esta manera los usuarios de la comunidad serán los beneficiados.


saludos ;)

Última edición por boodrox; 19/01/2011 a las 14:28
  #9 (permalink)  
Antiguo 19/01/2011, 15:14
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Solo numeros con decimal

Cita:
Iniciado por boodrox Ver Mensaje
IsaBelM, tu función presentará problemas al momento de ser utilizado por un usuario, por ejemplo:

*además tiene problemas de lógica y está malo :("


Cita:
Iniciado por boodrox Ver Mensaje
donde supuestamente se válida? onkeydown? onkeyup? sabes las diferencias de ambas? prueba tú propio código y mira que ocurre, luego prueba mi código y aprecia el resultado.
y tú me lo pregustas?? seguro que un programador como tú no has tenido ningún problema a la hora de invocar la función

Cita:
Iniciado por boodrox Ver Mensaje
que ocurre si presiono la tecla "enter" para validar o "tab" o "F5" para refrescar o "inicio" para ir al principio del texto? o la tecla "final" ?
o incluso algo mas típico las teclas (flechas) para retroceder, avanzar etc etc.

es ahí donde entra en uso el split de la cadena, en la cual están las teclas extras que se deben validar.
de donde has sacado que sea un texarea?? te parece muy complicado encontrar el valor ascii de enter??

Cita:
Iniciado por boodrox Ver Mensaje
tal parece eres una estudiante, así que te invito a analizar mejor el código.

sería bueno que en vez de cuestionar al autor y al código,
y tú hablas de cuestionar?? con que solamente hubieras respondido al tema sin recriminarme nada ......

Cita:
Iniciado por boodrox Ver Mensaje
lo intentes mejorar y agregar por ejemplo la capacidad de validar el contenido cuando un usuario pega (desde el porta papeles) un valor no numérico. De esta manera los usuarios de la comunidad serán los beneficiados.


saludos ;)
no, no doy esa oportunidad. de cualquier modo, has odio hablar que la validación que realmente importa es la validación del lado del servidor??
  #10 (permalink)  
Antiguo 19/01/2011, 15:17
 
Fecha de Ingreso: enero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Solo numeros con decimal

creo que gogupe no abrió este tema darse cuenta quien sabia mas..... y tampoco creo que sea la idea del foro.... así que amigos a disfrutar de la vida

Etiquetas: decimal, numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.