Comunidad de diseño web y desarrollo en internet online

me valide una caja de texto solo numeros decimales de 0 a 5

Citar            
MensajeEscrito el 24 May 2011 02:10 pm
hola mi problema es el siguiente:
necesito que al digitar me valide una caja de texto solo numeros decimales de 0 a 5 con un solo decimal. entonces no he encontrado la manera de hacerlo. quisiera q me dieran algún ejemplo o la alguna función como tal. pues yo diría que la mejor manera seria con javascript. espero q me ayuden. muchas gracias

Por jer86

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 May 2011 03:29 pm
encontre esto y me sirve para lo que quiero pero ahora tengo otro problema y es q me deja ingresar letras. y he probado de varias maneras y no pude espero q me ayuden .gracias
//VARIABLE GLOBAL
var textoAnterior = '';

//ESTA FUNCIÓN DEFINE LAS REGLAS DEL JUEGO
function cumpleReglas(simpleTexto)
{



//la pasamos por una poderosa expresión regular
var expresion = new RegExp("^(|([0-4]{1,1}(\\.([0-9]{1,1})?)?))$");

//si pasa la prueba, es válida
if(expresion.test(simpleTexto))
return true;
return false;
}//end function checaReglas

//ESTA FUNCIÓN REVISA QUE TODO LO QUE SE ESCRIBA ESTÉ EN ORDEN
function revisaCadena(textItem)
{

//si comienza con un punto, le agregamos un cero
if(textItem.value.substring(0,1) == '.')
textItem.value = '' + textItem.value;


//si no cumples las reglas, no te dejo escribir
if(!cumpleReglas(textItem.value))
textItem.value = textoAnterior;
else
textoAnterior = textItem.value;
}//end function revisaCadena

Por jer86

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 May 2011 05:06 pm
Si entendí bien, lo que quieres es esto:

Código HTML :

<!doctype html>
<html>
<head>
<script type="text/javascript">
function GetKey(e) {
   var keynum;
   if(window.event) { keynum = e.keyCode; }
   else if(e.which) { keynum = e.which; }
   return keynum;
}

function GetChar(ev) {
   var ev = ev || window.event;
   var chr = ev.charCode || ev.keyCode;
   return String.fromCharCode(chr);
}

function ValidarTecla(ev) {
   var key = GetKey(ev);
   if (key > 63) {
      var chr = GetChar(ev);
      if (/[\d|\.|,]/.test(chr)) {
         return true;
      } else {
         return false;
      }
   } else {
      return true;
   }
}

function ValidarTexto(ele) {
   var valor = ele.value;
   if (/^\d[,|\.]\d*/.test(valor) == false) {
      alert("El valor no es válido.");
   } else {
      if ((parseFloat(valor) < 0) || (parseFloat(valor) > 5)) {
         alert("Debe estar entre cero y cinco.");
      }
   }
}
</script>
</head>
<body>
<input type="text" name="sometext" id="sometext" onKeypress="return ValidarTecla(event);" onBlur="ValidarTexto(this);" />
<input type="button" value="Vamos" />
</body>
</html>

Lo escribí lo más explícitamente posible para que se entienda el ejemplo (reciclando código de mi biblioteca personal...).
No permite que se tecleen otra cosa que no sean números, el punto o la coma o las teclas tab y enter. Luego, al perder el foco la caja de texto, valida lo que se ha ingresado.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 24 May 2011 07:39 pm

DriverOp escribió:

Si entendí bien, lo que quieres es esto:

Código HTML :

<!doctype html>
<html>
<head>
<script type="text/javascript">
function GetKey(e) {
   var keynum;
   if(window.event) { keynum = e.keyCode; }
   else if(e.which) { keynum = e.which; }
   return keynum;
}

function GetChar(ev) {
   var ev = ev || window.event;
   var chr = ev.charCode || ev.keyCode;
   return String.fromCharCode(chr);
}

function ValidarTecla(ev) {
   var key = GetKey(ev);
   if (key > 63) {
      var chr = GetChar(ev);
      if (/[\d|\.|,]/.test(chr)) {
         return true;
      } else {
         return false;
      }
   } else {
      return true;
   }
}

function ValidarTexto(ele) {
   var valor = ele.value;
   if (/^\d[,|\.]\d*/.test(valor) == false) {
      alert("El valor no es válido.");
   } else {
      if ((parseFloat(valor) < 0) || (parseFloat(valor) > 5)) {
         alert("Debe estar entre cero y cinco.");
      }
   }
}
</script>
</head>
<body>
<input type="text" name="sometext" id="sometext" onKeypress="return ValidarTecla(event);" onBlur="ValidarTexto(this);" />
<input type="button" value="Vamos" />
</body>
</html>

Lo escribí lo más explícitamente posible para que se entienda el ejemplo (reciclando código de mi biblioteca personal...).
No permite que se tecleen otra cosa que no sean números, el punto o la coma o las teclas tab y enter. Luego, al perder el foco la caja de texto, valida lo que se ha ingresado.
Esto lo necesito para un sistema de calificación, este tiene rango de calificaciones de 0 a 5. entonces lo q necesito es cuando se este digitando la nota no permita ingresar numeros mayores y cuando digite el entero por consiguiente siga el punto y el decimal correspondiente.

Por jer86

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 May 2011 02:16 pm

jer86 escribió:

Esto lo necesito para un sistema de calificación, este tiene rango de calificaciones de 0 a 5. entonces lo q necesito es cuando se este digitando la nota no permita ingresar numeros mayores y cuando digite el entero por consiguiente siga el punto y el decimal correspondiente.

... Que es exactamente lo que he hecho... No entiendo tu comentario.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.