Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/04/2017, 08:38
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: ¿Cómo pasar un valor a una función?

Ok, para que quede más claro. Voy a omitir la parte de crear una nueva función obteniendo el valor del Select cuando cambie al seleccionar diferente ciudad (esta es la que estaba yo creando adicional al programa) ¿por qué? Bueno, esto debido a que dentro del mismo código hay una función donde se puede obtener la ciudad seleccionada, esto es en:

Código Javascript:
Ver original
  1. displayUserDetails: function() {
  2.             if( this.$userDetails.length ) {
  3.                 if( this.storage.getItem( "shipping-name" ) == null ) {
  4.                     var name = this.storage.getItem( "billing-name" );
  5.                     var email = this.storage.getItem( "billing-email" );
  6.                     var city = this.storage.getItem( "billing-city" );
  7.                     var address = this.storage.getItem( "billing-address" );
  8.                     var zip = this.storage.getItem( "billing-zip" );
  9.                     var country = this.storage.getItem( "billing-country" );
  10.                    
  11.                     var html = "<div class='detail'>";
  12.                         html += "<h2>Facturación y envío</h2>";
  13.                         html += "<ul>";
  14.                         html += "<li>" + name + "</li>";
  15.                         html += "<li>" + email + "</li>";
  16.                         html += "<li>" + city + "</li>";
  17.                         html += "<li>" + address + "</li>";
  18.                         html += "<li>" + zip + "</li>";
  19.                         html += "<li>" + country + "</li>";
  20.                         html += "</ul></div>";
  21.                        
  22.                     this.$userDetails[0].innerHTML = html;
  23.                 } else {
  24.                     var name = this.storage.getItem( "billing-name" );
  25.                     var email = this.storage.getItem( "billing-email" );
  26.                     var city = this.storage.getItem( "billing-city" );
  27.                     var address = this.storage.getItem( "billing-address" );
  28.                     var zip = this.storage.getItem( "billing-zip" );
  29.                     var country = this.storage.getItem( "billing-country" );
  30.                    
  31.                     var sName = this.storage.getItem( "shipping-name" );
  32.                     var sEmail = this.storage.getItem( "shipping-email" );
  33.                     var sCity = this.storage.getItem( "shipping-city" );
  34.                     var sAddress = this.storage.getItem( "shipping-address" );
  35.                     var sZip = this.storage.getItem( "shipping-zip" );
  36.                     var sCountry = this.storage.getItem( "shipping-country" );
  37.                    
  38.                     var html = "<div class='detail'>";
  39.                         html += "<h2>Facturación</h2>";
  40.                         html += "<ul>";
  41.                         html += "<li>" + name + "</li>";
  42.                         html += "<li>" + email + "</li>";
  43.                         html += "<li>" + city + "</li>";
  44.                         html += "<li>" + address + "</li>";
  45.                         html += "<li>" + zip + "</li>";
  46.                         html += "<li>" + country + "</li>";
  47.                         html += "</ul></div>";
  48.                        
  49.                         html += "<div class='detail right'>";
  50.                         html += "<h2>Envío</h2>";
  51.                         html += "<ul>";
  52.                         html += "<li>" + sName + "</li>";
  53.                         html += "<li>" + sEmail + "</li>";
  54.                         html += "<li>" + sCity + "</li>";
  55.                         html += "<li>" + sAddress + "</li>";
  56.                         html += "<li>" + sZip + "</li>";
  57.                         html += "<li>" + sCountry + "</li>";
  58.                         html += "</ul></div>";
  59.                        
  60.                     this.$userDetails[0].innerHTML = html;  
  61.                
  62.                 }
  63.             }
  64.         },

ahora, siendo que la ciudad se puede obtener de aquí, la parte que no entiendo es porque no puedo invocarla en esta otra función:

Código Javascript:
Ver original
  1. _calculateShipping: function( qty ) {
  2.             var shipping = 0;
  3.            
  4.             if( qty >= 6 ) {
  5.                 shipping = 10;
  6.             }
  7.             if( qty >= 12 && qty <= 30 ) {
  8.                 shipping = 20;  
  9.             }
  10.            
  11.             if( qty >= 30 && qty <= 60 ) {
  12.                 shipping = 30;  
  13.             }
  14.            
  15.             if( qty > 60 ) {
  16.                 shipping = 0;
  17.             }
  18.            
  19.             return shipping;
  20.        
  21.         },

para que en lugar de generar el envío por la cantidad de productos, lo calcule en base a la ciudad seleccionada. Intente llamarla en function ( country ), pero al parecer no llega el valor seleccionado cuando el procedimiento es el mismo que si llamara qty como en el código original.

Y sí, en efecto, me tiene un poco perdido el no poder obtenerlo, como comenté anteriormente, javascript aún no es mi fuerte pero no veo porque se me está complicando tanto llamar una variable :/

Saludos!!