JQuery - Problema de parseo con Jquery en Tabla. Multiplicar dos valores

 
Vista:

Problema de parseo con Jquery en Tabla. Multiplicar dos valores

Publicado por giuli (19 intervenciones) el 28/02/2019 12:09:10
Tengo el siguiente codigo, donde creo una tabla con las columnas cantidad, medida, canilla, el precio correspondiente a esa medida de esa canilla, y un subtotal(cantidad por precio) pero para el subtotal muestra Nan..not a number.

La verdad es que siempre use parseFloat, pero no se porque ahora no funciona. el preico lo obtengo de filtrar el JSON de medidas, y la cantidad del input number.

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
53
54
$.ajax({
 
        type: "POST",
        url: "views/modules/medida/procesomedida.php",
            data:{"accion":"listar"},
  dataType:"json",
 
        error: function(){
            alert("error petición ajax");
        },
        success:function(data)
        {
 
   $.each(data, function (index, item) {
 
 
     contenido='<tr><td style="width:100px;"><input type="number" min="1" name="cant"'+item.idmedida+' class="col-sm-12"  /></td> '+
     '<td style="width:200px;">'+item.descripcion+'</td>'+
    '<td style="width:400px;"><select id="'+item.idmedida+'" class="canillas" style="width:390px;"><option value="1">Seleccione</option>'+
    '<td><label name="'+item.idmedida+'"></label></td>'+
 
    '<td><label name="subtotal'+item.idmedida+'"class="subtotal"></label></td>'+
    '<td style="width:100px;"><input type="text" class="col-sm-12"/></td>'+
    '<td><label class="total"></label></td>';
 
 
 
 
 
 
 
 
 $(contenido).append('</tr>');
 
  $(contenido).appendTo("#venta tbody");
 
});
 
 $(".canillas").click(function(){
        idm=$(this).attr("id");
        idb=$(this).val();
 
        precio=dameprecio(idm,idb);
        var cantidad= $("input[name=cant"+idm+"]").val();
        var subtotal=parseFloat(precio) * parseFloat(cantidad);
 
   $("label[name="+idm+"]").text(precio);
   $("label[name=subtotal"+idm+"]").text(parseFloat(subtotal));
      //  $("#precio").text(medida[0].precio);
       });
 canillas=damecanilla();
 
   }
            });

Alguien me puede ayudar?
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 santi
Val: 163
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Problema de parseo con Jquery en Tabla. Multiplicar dos valores

Publicado por santi (55 intervenciones) el 01/03/2019 00:16:04
Hola,

si es un "select" prueba utilizando "change":

1
2
3
4
5
$(".canillas").on('change', function(){
    var idm=$(this).attr("id");
    var idb=$(this).val();
    //etc...
});

O puede que haya un error al declarar la variable precio sin "var" (var precio =...).

Prueba a ver ;)
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
sin imagen de perfil
Val: 142
Plata
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Problema de parseo con Jquery en Tabla. Multiplicar dos valores

Publicado por Horroroso (60 intervenciones) el 21/03/2019 19:22:32
Hola,
Tu problema esta aqui:
1
name="cant"'+item.idmedida+'
Las comillas las cierras antes.

debería ser:
1
name="cant'+item.idmedida+'"

Y eso solucionaria tu problema.

Saludos.

Horroroso.
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