2010-07-26 10 views
8

Ich habe ein Onchange-Ereignis, das ein Formular aktualisiert, und im Aktualisierungsprozess ruft es eine Funktion zum Berechnen des Versands auf. Ich bin mir nicht sicher, warum, aber ich erhalte die folgende Fehlermeldung, wenn ich versuche, um die Funktion aufzurufen:Was verursacht den Fehler "Uncaught TypeError: Nummer ist keine Funktion"

Uncaught TypeError: number is not a function

Die Funktion, shipping, sieht wie folgt aus:

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 vorbei 1 gerade jetzt. Die Variable distance stammt von einem Ajax-Aufruf, der vor dem Ausführen dieser Funktion abgeschlossen wurde. Diese Funktion sieht wie folgt aus:

function get_distance(zip) 
{ 

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

} // get_distance 

ich überprüft haben, um sicherzustellen, dass die Variable distance gesetzt.

Die Konsole sagt, dass der Fehler des nicht abgefangenen Typs an der Linie happt, an der ich shipping(1) rufe. Irgendwelche Gedanken, warum das passiert?

Antwort

23

Verwenden Sie shipping als Variable überall? Klingt wie die function Versand wird überschrieben, indem Sie es als variable mit einem numerischen Wert von 1 verwenden.

Es ist nicht in dem Code, den Sie gepostet haben (noch ist der Anruf zu shipping(1) Sie erwähnt).

+0

Das war es! Ugh dumme Fehler. Vielen Dank! – hookedonwinter

Verwandte Themen