Foros del Web » Creando para Internet » HTML »

Limitar valor maximo en un input?

Estas en el tema de Limitar valor maximo en un input? en el foro de HTML en Foros del Web. Hola foreros! Queria saber si es posible limitar el valor a insertar en un input. O sea, si en el input se inserta un valor ...
  #1 (permalink)  
Antiguo 24/11/2011, 21:44
 
Fecha de Ingreso: mayo-2008
Ubicación: En algun lado!
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 1
Limitar valor maximo en un input?

Hola foreros!

Queria saber si es posible limitar el valor a insertar en un input.

O sea, si en el input se inserta un valor numerico mayor a X, que ese valor se cambie automaticamente a X

Saludos!
  #2 (permalink)  
Antiguo 24/11/2011, 22:57
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limitar valor maximo en un input?

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>número mayor que</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. // con esta función comprobás que sea un número
  9. function es_numero(input){
  10. return !isNaN(input)&&parseInt(input)==input;
  11. }
  12. //ahora verificas que sea no sea mayor que 5
  13. function comprobar(){
  14.  
  15. var laedad = document.getElementById('edad').value;  
  16. if(es_numero(laedad)){
  17. if(laedad > 5){
  18. alert("Número mayor que 5\n\rsu número: " + laedad);
  19. document.getElementById('edad').value= 5;
  20. }
  21. } else{
  22. alert("Debe ingresar un número");
  23. }
  24.  
  25. }
  26. //]]>
  27. </head>
  28. <form action="#">
  29. <p>
  30. El campo debe de tener un valor y este ser menor ó igual a 5    <br />
  31. <input type="text" name="edad" id="edad" onblur="comprobar()"/>
  32. </p>
  33. </form>
  34. </body>
  35. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 27/11/2011, 16:31
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 10 meses
Puntos: 21
Respuesta: Limitar valor maximo en un input?

Muy interesante el código mostrado.
Es justo lo que requiero, solo que:

Mi formulario tiene varios campos, ¿Como puedes enviar desde el mismo
onblur="comprobar() el valor máximo permitido?

Quizá sea algo así: onblur="comprobar(5)

Ahora: ¿Como tomar este valor en la función?

Gracias
  #4 (permalink)  
Antiguo 27/11/2011, 20:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limitar valor maximo en un input?

Digamos que tenes varios campos y diferentes valores, entonces pasarias a la funcion el valor y el campo sobre el que estás trabajando

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>número mayor que</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. // con esta función comprobás que sea un número
  9. function es_numero(input){
  10. return !isNaN(input)&&parseInt(input)==input;
  11. }
  12. //ahora verificas que sea no sea mayor que 5
  13. function comprobar(campo,val_num){
  14.  
  15. var elvalor = document.getElementById(campo).value;  
  16. if(es_numero(elvalor)){
  17.  
  18. if(elvalor > val_num){
  19. document.getElementById(campo).value= val_num;
  20. alert("Número mayor que "  +val_num + "\n\rsu número: " + elvalor);
  21. document.getElementById(campo).style.backgroundColor = "red";
  22. }else{
  23. document.getElementById(campo).style.backgroundColor = "#FFF";
  24. }
  25.  
  26. } else{
  27. alert("Debe ingresar un número");
  28. document.getElementById(campo).style.backgroundColor = "red";
  29. }
  30.  
  31. }
  32. //]]>
  33. </head>
en ligar de pasar los nombres 'edad', 'peso', le damos al campo un id y pasamos el valor en forma generica con this.id, seguido del numero (sin comillas, ya que se supone que es un numero entero no una cadena.
Lo que no me queda muy claro es para que querés que se complete el campo con el valor del número automaticamente, si es para resaltar el error, podes darle un color de fondo al campo inválido Eso hice en el ejemplo)

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 27/11/2011 a las 20:52
  #5 (permalink)  
Antiguo 27/11/2011, 21:33
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 10 meses
Puntos: 21
Respuesta: Limitar valor maximo en un input?

Gracias emprear,

Te pido el gran favor de incluir el INPUT (el del FORM), He intentado haciendo pruebas y no logro hacerlo funcionar.
Desde el INPUT se debe indicar el valor máximo permitido.

Apenas estoy iniciando en esto de JS.

Gracias anticipadas.
  #6 (permalink)  
Antiguo 27/11/2011, 22:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Limitar valor maximo en un input?

disculpas amigo, lo tenia hecho pero me comi el body al copiar y pegar

aca va completo
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>número mayor que</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. // con esta función comprobás que sea un número
  9. function es_numero(input){
  10. return !isNaN(input)&&parseInt(input)==input;
  11. }
  12. //ahora verificas que sea no sea mayor que 5
  13. function comprobar(campo,val_num){
  14.  
  15. var elvalor = document.getElementById(campo).value;  
  16. if(es_numero(elvalor)){
  17.  
  18. if(elvalor > val_num){
  19. document.getElementById(campo).value= val_num;
  20. alert("Número mayor que "  +val_num + "\n\rsu número: " + elvalor);
  21. document.getElementById(campo).style.backgroundColor = "red";
  22. }else{
  23. document.getElementById(campo).style.backgroundColor = "#FFF";
  24. }
  25.  
  26. } else{
  27. alert("Debe ingresar un número");
  28. document.getElementById(campo).style.backgroundColor = "red";
  29. }
  30.  
  31. }
  32. //]]>
  33. </head>
  34. <form action="#">
  35. <p>
  36. El campo debe de tener un valor y este ser menor ó igual a 5    <br />
  37. <input type="text" name="edad" id="edad" onblur="comprobar(this.id,5)" /><br />
  38. El campo debe de tener un valor y este ser menor ó igual a 130  <br />
  39. <input type="text" name="edad" id="peso" onblur="comprobar(this.id,130)"/>
  40. </p>
  41. </form>
  42. </body>
  43. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 28/11/2011 a las 11:48 Razón: gramática
  #7 (permalink)  
Antiguo 27/11/2011, 23:17
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 10 meses
Puntos: 21
Respuesta: Limitar valor maximo en un input?

Estimado emprear,

Eres un mago, te super agradezco, ahora se encuentra exacto a como lo requiero.
Mi Form tiene varias validaciones, todas JS.
En cuanto lo finalice el proyecto lo publico aquí mismo, lo cual debe ser esta misma semana.

Mucho muy agradecido.

Saludos.
  #8 (permalink)  
Antiguo 13/12/2011, 21:55
 
Fecha de Ingreso: mayo-2008
Ubicación: En algun lado!
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Limitar valor maximo en un input?

Un poco tarde la respuesta pero gracias porque me re sirvio :)

Saludos!

Etiquetas: limitar, maximo
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 23:10.