JavaScript - Problema con script de restas o sumas al agregar 8 o mas cifras

 
Vista:
Imágen de perfil de Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 04/02/2020 20:16:13
Este Script que me ayudaron en este foro a realizar tengo un problema el cual si pongo un numero en le primer campo de 8 crifras o mas, en el del resultado muestra un resultado extraño, desaparecen números a medida que agrego 8 cifras o mas en los campos a operar o elimino en los otros campos cifras... que pasará..

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value.replace(".",""))
var numero2 = Number(caja["numero2"].value.replace(".",""))
var numero3 = Number(caja["numero3"].value.replace(".",""))
resultado=numero1-numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1-numero2-numero3;
format(caja["resultado"])
}
}
</script>
<script>
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" onChange="format(this)" onKeyUp="format(this)" readonly/>
  </p>
</form>
</body>
</html>
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
sin imagen de perfil
Val: 40
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Marlon (90 intervenciones) el 05/02/2020 04:40:24
Hola, con gusto te colaboro, pero primero me podrías explicar que necesitas que haga tu codigo.
otra cosa que no entendo es por que utilizas un form?
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 Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 05/02/2020 14:23:30
Hola Marlon, gracias por responder, ya te cuento...son campos que se suman o se restan a medida que se van agregando los números (como una calculadora) en algunos casos os campos deben restarse a medida que se va agregando los valores en los campos, el resultando va apareciendo a medida que se van agregando los valores en cada caja.

el problema si lo ven es que al poner un numero de 8 o mas cifras noten como desaparecen los caracteres en el resultado.


1
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 Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 05/02/2020 14:24:00
Hola Joel muchas gracias por responder, no entiendo que me quieres decir.. ;) un abrazo
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por joel (895 intervenciones) el 05/02/2020 15:48:16
si, es sencillo... si quitas la función format() te hace los cálculos correctamente... incluso con mas de 8 números. El problema esta en esa función.

Te recomiendo que utilices la función que te he indicado para poner los separadores de miles.
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 Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 05/02/2020 17:13:59
Hola Joel muchas gracias por responder y ayudarme, es decir el problema es la linea 15, 21 y 47 donde aparece el format() y entonces con que función la reemplazo.. y que uso para que me separe a medida que ingreso el numero por miles si quito la función no me lo haría...


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value.replace(".",""))
var numero2 = Number(caja["numero2"].value.replace(".",""))
var numero3 = Number(caja["numero3"].value.replace(".",""))
resultado=numero1-numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1-numero2-numero3;
format(caja["resultado"])
}
}
</script>
<script>
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" onChange="format(this)" onKeyUp="format(this)" readonly/>
  </p>
</form>
</body>
</html>
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por joel (895 intervenciones) el 05/02/2020 21:12:03
Utiliza la función que te he puesto en el enlace!!!
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 Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 05/02/2020 21:50:30
Hola Amigo que pena incomodar soy nuevo en esto y gracias a ustedes he construido el script de verdad muchas gracias por ayudarme pero no se como incluir este código que me envías en mi código..

1
2
3
4
5
const numberWithCommas = (x) => {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ".")
    return parts.join(",");
}


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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
caja=document.forms["sumar"].elements;
var numero1 = Number(caja["numero1"].value.replace(".",""))
var numero2 = Number(caja["numero2"].value.replace(".",""))
var numero3 = Number(caja["numero3"].value.replace(".",""))
resultado=numero1-numero2-numero3;
if(!isNaN(resultado)){
caja["resultado"].value=numero1-numero2-numero3;
format(caja["resultado"])
}
}
</script>
<script>
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
var num = input.value.replace(/\./g,'');
if(!isNaN(num)){
num = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1.');
num = num.split('').reverse().join('').replace(/^[\.]/,'');
input.value = num;
}
//-- ALERTA SOLO NUMEROS
else{ alert('Solo se permiten numeros');
input.value = input.value.replace(/[^\d\.]*/g,'');
}
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" onChange="format(this)" onKeyUp="format(this)" readonly/>
  </p>
</form>
</body>
</html>
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por joel (895 intervenciones) el 06/02/2020 08:30:31
Hola Eduardo, aquí lo tienes... se puede optimizar un poco mas, pero no quería modificarte mucho tu código.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<html>
<head>
</head>
<body>
<script>
//---- SCRIPT SUMA Y RESTA EN CAMPOS--------
function fncSumar(){
    caja=document.forms["sumar"].elements;
    var numero1 = caja["numero1"].value.replace(/\./g,"");
    var numero2 = caja["numero2"].value.replace(/\./g,"");
    var numero3 = caja["numero3"].value.replace(/\./g,"");
    resultado= +numero1 + +numero2 - +numero3;
    console.log(resultado);
    if(!isNaN(resultado)){
        caja["resultado"].value=resultado;
        format(caja["resultado"]);
    }
}
</script>
<script>
//-----SCRIPT SEPARADOR DE MILES---------
function format(input)
{
    var num = input.value.replace(/\./g,'');
    if(!isNaN(num)){
        var parts = num.toString().split(".");
        parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ".");
        input.value = parts.join("");
    }
    //-- ALERTA SOLO NUMEROS
    else{
        alert('Solo se permiten numeros');
    }
}
</script>
<form method="post" name="sumar">
 
  <p>+Primer Numero:
    <input type="text" name="numero1" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>+ Segundo Numero:
    <input type="text" name="numero2" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>- Tercer Numero:
    <input type="text" name="numero3" onKeyUp="fncSumar();format(this)" onChange="format(this)"/>
  </p>
  <p>Resultado:
  <input name="resultado" type="text" onChange="format(this)" onKeyUp="format(this)" readonly/>
  </p>
</form>
</body>
</html>
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
Imágen de perfil de Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 06/02/2020 16:46:15
Mil y mil Gracias Joel!!!
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 joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por joel (895 intervenciones) el 07/02/2020 12:13:54
Estaría bien que valoraras la respuesta que te ha servido!!
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
Imágen de perfil de Eduardo
Val: 159
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con script de restas o sumas al agregar 8 o mas cifras

Publicado por Eduardo (176 intervenciones) el 07/02/2020 15:07:46
Siii amigo claro que funciono Muchas graciasssss mil mill
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