¿Como limitar el numero de decimales a un input?

publicado por: Anonymous

El total se genera multiplicanco cantidad x precio en la siguiente funcion

El total se genera multiplicanco cantidad x precio en la siguiente funcion

      function calcularMult(con){
      $("#resultado_" + con).val($("#nn_" + con).val() * $("#mm_" + con).val());
      var sum1 = 0;
      $("input[id^='resultado_']").each(function() {
        sum1 += Number($(this).val());
       });  
      sum1.toFixed(2);
      var sum=sum1;         
      $("#total").val(sum)
      }

<button type="button" name="crea" id="+" onClick="cargaProd();" class="btn btn-primary" )>
                  Nueva partida
                  </button>
                  <button type="button" name="envia" id="-" onClick="eliminar()" class="btn btn-danger")>
                  Eliminar Partida
                  </button>
                  <input type="button" name="process" class="btn btn-primary" onclick="pregunta()" value="<?php echo __("Terminar Orden de Compra"); ?>" >





                  <script type="text/javascript">
                    var con = 1;
                     var can = '<?php echo $quantity;?>'-1;


                    function cargaProd()
                      {
var linea = "<tr id='"+con+"'><td>"+con+"</td><td><input type='text' name='articulo["+can+"]' placeholder=' Articulo' class='span12 inputbox'/></td><td><input name='can["+can+"] ' id='nn_"+con+"' type='text' class='span6 inputbox' size='15' value='0' onkeyup='calcularMult("+con+")'></td><td><select name='medida["+can+"]' id='medida' class='selectpicker span9' ><option value=''></option><?php foreach ($resultado as $key => $value) {?><option value='<?php echo $value["Unidad"];  ?>'><?php echo $value["Unidad"];  ?></option><?php  } ?></select></td><td><input name='dp["+can+"]' id='mm_"+con+"' type='text' class='span6 inputbox' size='15' value='0' onkeyup='calcularMult("+con+")' ></td><td><input  name='to["+can+"]' id='resultado_"+con+"' type='number' step='0.01' class='span6 inputbox' size='15' ></td></tr>";

$('#listaArticulos').append(linea);
con = con+1
can = can+1
$("#quantity").val(can);
}
function eliminar(){
  //Determinamos Cuantas filas posee la lista
  var filas = $("#listaArticulos tr").length;

  //Eliminamos la última
  $("tr[id="+filas+"]").remove();
  //Si el contador no es igual a 1, le restamos la fila eliminada
  if(con>1){
    con = con-1
    can = can-1
    $("#quantity").val(can);

  }

}

solución

tu problema es sencillo.

function calcularMult(con){
  $("#resultado_" + con).val($("#nn_" + con).val() * $("#mm_" + con).val());
  var sum1 = 0;
  $("input[id^='resultado_']").each(function() {
    sum1 += Number($(this).val());
   });  
  //Cambiar
  var sum=sum1.toFixed(2);        
  $("#total").val(sum)
}

No estás asignando sum1.toFixed(2); a nada, por ello el resultado de este valor queda en el aire, puede hacerlo como te puse en el código anterior o sencillamente;

  sum1 = sum1.toFixed(2);
  var sum=sum1; 

Espero te haya ayudado.

Por cierto, si el input es de tipo number, es mejor hacer un cast a la variable;

  sum1 = Number(sum1.toFixed(2));
  var sum=sum1;
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *