JavaScript - Problemas con input donde se imprime resultado

 
Vista:
sin imagen de perfil

Problemas con input donde se imprime resultado

Publicado por Jack Rip (1 intervención) el 02/12/2017 06:23:19
Hola tengo este codigo, la función en si es comparar el campo de tarifa final de la primera columna con la segunda, la segunda con la tercera y sucesivamente, para obtener la class fue confuso unos empezaban con letras otro con numero, despues obtuve el id, y a la hora de obtener el value de estos elementos me tira a 0 o vacio
el form esta formado asi

tarifa tarifa .....
tarifaimp tarifaimp .....
tarifanormal tarifanormal .....

destaco y cabe recalcar que mi problema ronda en que los inputs de tarifaimp y tarifanormal se llenan automaticamente con una función onchange cuando typeas valor en tarifa. Amigos ayúdenme por favor

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//variables globales
var tipo_habitacion=0;
	var tipo_plan=0;
    var precio=0;
    var ahora=0;
    var actual;
    var anterior;
    var siguiente;
    var precioAnterior=0;
    var idInput;
 
$(".tabla-tarifa-base table  input").on('change',function(data){
	//console.log(this);
	tipo_habitacion=$(".t_habitacion").val();
    tipo_plan=$("#Tarifa_id_tipo_plan").val();
    //console.log($(this).closest('.habitacion').attr('id'));
 
	//$(".tabla-tarifa-base table input:nth-child(i)")
	//sgl, dbl, tpl, qpl, 5++ 
    actual=this.id;
    //precio = this.value;
 
    var padre="#"+$(this).closest('.habitacion').attr('id');
 
 
 
 
    if(Number.isInteger(actual[0])){
    	if(parseInt(actual[0])==5)
    		anterior="qpl";
 
    	else
    		anterior=parseInt(actual[0])-1;
 
    	siguiente=parseInt(actual[0])+1;
        ahora=actual[0];
 
 
    }
    else{
    	switch(actual[0]){
    		case "s":
    			anterior=null;
    			siguiente="dbl";
                ahora="sgl";
                idInput ='#'+$('.publica').find('input.precionormal-sgl').attr('id');
                precio =$(idInput).val();
    			break;
    		case "d":
    			anterior="sgl";
                ahora="dbl";
    			siguiente="tpl";
    			idInput ='#'+$('.publica').find('input.precionormal-dbl').attr('id');
                precio =$(idInput).val();
    			break;
    		case "t":
                ahora="tpl";
                anterior="dbl";
    			siguiente="qpl";
    		    idInput ='#'+$('.publica').find('input.precionormal-tpl').attr('id');
                precio =$(idInput).val();
    			break;
    		case "q":
 
                anterior="tpl";
                ahora="qpl";
    			siguiente=5;
                idInput ='#'+$('.publica').find('input.precionormal-qpl').attr('id');
                precio =$(idInput).val();
    			break;
 
    	}
    }
 
        console.log(idInput);
        console.log(precio);
 
 
 
    if(anterior!=null)
        precioAnterior=$(".precionormal-"+anterior).val();
 
 
 
 if(tipo_plan==1 || tipo_plan==2 && tipo_habitacion==1 && anterior==null)
 
    {
 
        $(padre+" .precioneto-"+siguiente).removeAttr("disabled");
        $(padre+" .precionormal-"+siguiente).removeAttr("disabled");
        $(padre+" .precioimp-"+siguiente).removeAttr("disabled");
    }else {
        if(anterior==null)
        alert('Asegurate de haber escogido un tipo de plan y de habitación admitidos para la validación');
 
    }
 
 
        if(precio!=0){
 
        if( tipo_plan=="2" && tipo_habitacion=="1" && precio >= precioAnterior && anterior!=null){
            $(padre+" .precioneto-"+siguiente).removeAttr("disabled");
            $(padre+" .precionormal-"+siguiente).removeAttr("disabled");
            $(padre+" .precioimp-"+siguiente).removeAttr("disabled");
         }
         else if(tipo_plan=="1" && tipo_habitacion=="1" && precio > precioAnterior && anterior!=null){
              $(padre+" .precioneto-"+siguiente).removeAttr("disabled");
              $(padre+" .precionormal-"+siguiente).removeAttr("disabled");
              $(padre+" .precioimp-"+siguiente).removeAttr("disabled");
 
          } else {
 
           if(ahora!="sgl" && precio!=0){
            alert('Por favor Verifica que la tarifas sean correctas sencilla no puede ser mayor que la doble y SUCESIVAMENTE ');
             $(padre+" .precioneto-"+ahora).val("");
             $(padre+" .precionormal-"+ahora).val("");
             $(padre+" .precioimp-"+ahora).val("");
            }
 
         }
     }
 
 
 
 
 
});
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 jesus

Problemas con input donde se imprime resultado

Publicado por jesus (3 intervenciones) el 03/12/2017 03:38:10
Hola jack Rip, mira al parecer todo se ve bien yo te recomiendo que revises los Tipos de datos de JavaScript que se agregan automáticamente, es un detalle que hasta los expertos pasan por alto .
Tipos de datos de JavaScript
Las variables de JavaScript pueden contener muchos tipos de datos : números, cadenas, objetos y más:
1
2
3
var length = 16;                               // Number
var lastName = "Johnson";                      // String
var x = {firstName:"John", lastName:"Doe"};    // Object
El concepto de tipos de datos
En la programación, los tipos de datos son un concepto importante.

Para poder operar en variables, es importante saber algo sobre el tipo.

Sin tipos de datos, una computadora no puede resolver esto de forma segura:
1
var x = 16 + "Volvo";
¿Tiene algún sentido agregar "Volvo" a dieciséis? ¿Producirá un error o producirá un resultado?

JavaScript tratará el ejemplo anterior como:
1
var x = "16" + "Volvo";

Si quieres mas detalle te recomiendo: http://www.jesusramoni.com/webmaster/w3schools/js/js_datatypes.php

Saludos
Jesús Ramoni
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