2010-07-26 14 views
8

Tengo un evento onchange que actualiza un formulario, y en el proceso de actualización llama a una función para calcular el envío. No estoy seguro de por qué, pero yo estoy recibiendo el siguiente error cuando trato de llamar a la función:Lo que está causando el error "UnEdge TypeError: número no es una función"

Uncaught TypeError: number is not a function

La función, shipping, se ve así:

function shipping(weight) 
{ 
    var flat 

    switch(weight) 
    { 
     case 1: 
     case 2: 
     case 3: 
      flat = 32.00; 
      break; 

     case 4: 
      flat = 18.50; 
      break; 

     case 5: 
      flat = 15.80; 
      break; 

     case 6: 
      flat = 14.00; 
      break; 

     case 7: 
      flat = 12.71; 
      break; 

     case 8: 
      flat = 11.75; 
      break; 

     case 9: 
      flat = 11.00; 
      break; 

     case 10: 
      flat = 10.40; 
      break; 

     case 11: 
      flat = 9.91; 
      break; 

     case 12: 
      flat = 9.50; 
      break; 

     case 13: 
      flat = 9.15; 
      break; 

     case 14: 
      flat = 8.86; 
      break; 

     case 15: 
      flat = 8.86; 
      break; 

     case 16: 
      flat = 8.38; 
      break; 

     case 17: 
      flat = 8.18; 
      break; 

     case 18: 
      flat = 8.00; 
      break; 

     case 19: 
      flat = 7.84; 
      break; 

     case 20: 
      flat = 7.70; 
      break; 

    } // switch 

    var flat_fee = flat * weight; 
    var mile_fee = distance * 0.90; 

    var shipping_fee = flat_fee + mile_fee; 
    simpleCart.shippingTest = shipping_fee; 
    return shipping_fee; 
} // shipping 

I' m pasando en 1 en este momento. La variable distance proviene de una llamada ajax que se completa antes de ejecutar esta función. Esa función es el siguiente:

function get_distance(zip) 
{ 

    $.getJSON(
     'distance.php', 
     { zip:zip }, 
     function(json) 
     { 
      distance = json 
     }) 

} // get_distance 

He comprobado para asegurarse de que la variable distance se establece.

La consola dice que el error de tipo no capturado está ocurriendo en la línea a la que llamo shipping(1). ¿Alguna idea de por qué está sucediendo eso?

Respuesta

23

¿Está utilizando shipping como variable en cualquier lugar? Parece que se sobrescribe el envío function usándolo como variable con un valor numérico de 1.

No está en el código que ha publicado (tampoco lo es la llamada al shipping(1) que mencionó).

+0

¡Eso fue todo! Uf estúpidos errores. ¡Gracias! – hookedonwinter

Cuestiones relacionadas