JavaScript - introducir solo numero dos decimales

 
Vista:

introducir solo numero dos decimales

Publicado por Luis (1 intervención) el 16/02/2009 14:41:04
Hola, tengo una funcion jasvascript que impide meter letras en campos:
function AceptaNumero(evt)
{
var nav4 = window.Event ? true : false;
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || key==46 || (key >= 38 && key <= 57));

}

PERO yo lo que quiero es que solo se pueda meter un numero y dos decimales con una coma como separador. y ahora el tema es que puedo poner por ejemplo 434,45.545,54
¿Me pueden ayudar para que acepte xxx.xx solo?
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

RE:introducir solo numero dos decimales

Publicado por ScriptShow (692 intervenciones) el 16/02/2009 20:02:43
Saludos Luis,

un script que tenía a mano:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Ronnie T. Moore, Editor -->
 
<!-- Begin
function checkDecimals(fieldName, fieldValue) {

decallowed = 2; // how many decimals are allowed?

if (isNaN(fieldValue) || fieldValue == "") {
alert("El número no es válido. Prueba de nuevo.");
fieldName.select();
fieldName.focus();
}
else {
if (fieldValue.indexOf('.') == -1) fieldValue += ".";
dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

if (dectext.length > decallowed)
{
alert ("Por favor, entra un número con " + decallowed + " números decimales.");
fieldName.select();
fieldName.focus();
      }
else {
alert ("Número validado satisfactoriamente.");
      }
   }
}
// End -->
</script>

<form>
<font face="arial" size="2">Por favor, entra un número con hasta 2 decimales (con punto separador).</font><br>
<input type=text name=numbox size="20">
<input type=button name=ok value="Ok" onClick="checkDecimals(this.form.numbox, this.form.numbox.value)">
</form>

Te servirá para llevar una idea, experimentar, adaptarlo, etc.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por ALUadicted (1 intervención) el 17/07/2013 21:25:20
Muy buen script Funciona perfecto, adaptado conforme a necesidades...
Gracias por compartir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por eduardo (1 intervención) el 09/04/2010 19:26:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<SCRIPT LANGUAGE="JavaScript">
function NumCheck(e, field) {
  key = e.keyCode ? e.keyCode : e.which
  // backspace
  if (key == 8) return true
  // 0-9
  if (key > 47 && key < 58) {
    if (field.value == "") return true
    regexp = /.[0-9]{2}$/
    return !(regexp.test(field.value))
  }
  // .
  if (key == 46) {
    if (field.value == "") return false
    regexp = /^[0-9]+$/
    return regexp.test(field.value)
  }
  // other key
  return false
 
}
 
</script>
<input type="text" onkeypress="return NumCheck(event, this)"/>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:introducir solo numero dos decimales

Publicado por karolina (1 intervención) el 16/02/2012 16:39:44
Milll Grcias!!!! q buen codigo......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por Virus (1 intervención) el 02/05/2013 11:26:13
Iguallll mil gracias, me saco del apuro, aunque con las nuevas funcionalidades de HTML5 para los input (text ="numeric"), ya no va sería necesario, pero debes tener todas la actualizaciones necesarias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por Eli (1 intervención) el 23/05/2013 22:22:09
Hola muy buen código y aporte para la comunidad quisiera saber como hacer para que me permita ingresar 10 numeros primero y despues 2 decimales. Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por fernanda (1 intervención) el 08/01/2014 20:54:34
excelente me funciono a la perfeccion gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por Adam Suller (1 intervención) el 08/07/2015 00:34:44
Esta es la mejor manera de validar un campo de texto solo numérico a solo 2 decimales


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$('#ID_CAMPO_VALIDAR').keypress(function (tecla) {
 
            if ((tecla.charCode < 48 || tecla.charCode > 57) && (tecla.charCode != 46) && (tecla.charCode != 8)) {
                return false;
            }else {
                     var len   = $('#ID_CAMPO_VALIDAR').val().length;
                     var index = $('#ID_CAMPO_VALIDAR').val().indexOf('.');
 
                     if (index > 0 && tecla.charCode == 46) {
                         return false;
                     }
 
                     if (index > 0) {
                         var CharAfterdot = (len + 1) - index;
                         if (CharAfterdot > 3) {
                             return false;
                         }
                     }
            }
 
            return true;
        });
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por mplichy (1 intervención) el 04/04/2016 03:58:03
Una colaboracion aunque ya lo solucionaron :)
permite introducir numeros y valida a dos decimales
es una modificacion al codigo Publicado por eduardo
usando jQuery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$('#precio').on('keypress', function (e) {
        // Backspace = 8, Enter = 13, ’0′ = 48, ’9′ = 57,.’ = 46
        var field = $(this);
        key = e.keyCode ? e.keyCode : e.which;
 
        if (key == 8) return true;
        if (key > 47 && key < 58) {
          if (field.val() === "") return true;
          var existePto = (/[.]/).test(field.val());
          if (existePto === false){
              regexp = /.[0-9]{10}$/;
          }
          else {
            regexp = /.[0-9]{2}$/;
          }
 
          return !(regexp.test(field.val()));
        }
        if (key == 46) {
          if (field.val() === "") return false;
          regexp = /^[0-9]+$/;
          return regexp.test(field.val());
        }
        return false;
    });
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por LUZ (2 intervenciones) el 31/03/2017 19:22:25
muy buen aporte muchas gracias me sirvio :), estoy super contenta. lo utilice y lo deje asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function solo_JQdecimal(id) {
	 //PARA LLAMARLO EN EL OBJETO ---> onkeypress="solo_JQdecimal(this.id)"
 $('#'+id).on('keypress', function (e) {
     // Backspace = 8, Enter = 13, ’0′ = 48, ’9′ = 57,.’ = 46
     var field = $(this);
     key = e.keyCode ? e.keyCode : e.which;
 
     if (key == 8) return true;
     if (key > 47 && key < 58) {
       if (field.val() === "") return true;
       var existePto = (/[.]/).test(field.val());
       if (existePto === false){
           regexp = /.[0-9]{10}$/; //PARTE ENTERA 10
       }
       else {
         regexp = /.[0-9]{2}$/; //PARTE DECIMAL2
       }
       return !(regexp.test(field.val()));
     }
     if (key == 46) {
       if (field.val() === "") return false;
       regexp = /^[0-9]+$/;
       return regexp.test(field.val());
     }
     return false;
 });
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por luz (2 intervenciones) el 31/03/2017 19:25:45
la que pusiste esta mas elaborada la anterior no puedes variar cuantos enteros y decimal hay conflicto en eso, yo necesitaba usar mas de tres digitos de enteros, pero cuando lo alteraba tambien variaba los decimales :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por Rafma (1 intervención) el 13/03/2021 08:58:47
Adam, tiene un problema que acepta letras en el primer dígito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:introducir solo numero dos decimales

Publicado por victor (1 intervención) el 21/03/2017 19:44:00
saludos,
esta excelente tu codigo,
pero desearia saber porq solo acepta 5 digitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kandy

RE:introducir solo numero dos decimales

Publicado por kandy (1 intervención) el 14/10/2018 20:40:28
Excelente código, gracias por compartirlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar