2016-08-08 36 views
0

Ich bin sicher, diese Frage zu dumm scheinen viele von Ihnen aber es für mich wirklich geschehen, der Code, den ich unten geteilt perfekt funktioniert, wenn ich es in Firebug gründlich debuggen wenn nicht, und läuft einfach den Code ohne debuggen es einen Fehler auslösen,nicht Debuggen von Javascript-Code in Firebug den Fehler ausgelöst sonst funktioniert perfekt

function edit(Barcode) { 
 
    $('#pnlSize').show('fast'); 
 
    if ($('#test2 option').size() < 2) { 
 
    $.ajax({ 
 

 
     url: '@Url.Action("selectedItemChanged")', 
 
     type: 'GET', 
 
     dataType: "JSON", 
 
     data: { 
 
     barcode: Barcode 
 
     }, 
 
     success: function(sizes) { 
 

 
     var options = '<option value="Z">سایز را انتخاب کنید</option>'; 
 
     for (var i = 0; i < sizes.length; i++) { 
 
      console.log(sizes); 
 
      options += '<option value="' + sizes[i].ID + '">' + sizes[i].Size + '</option>'; 
 
     } 
 
     $("#test2").html(options); 
 
     } 
 

 
    }); 
 
    } 
 
    var val = $('#test2 :selected').text(); 
 
    if (val != 'سایز را انتخاب کنید' && val != null) { 
 

 
    location.href = '@Url.Action("AddToCart", "ShoppingCart")?Barcode=' + Barcode + '&size=' + $('#test2 :selected').text();; 
 

 
    } 
 
}

der Grund dafür ist, dass, wenn sie es nicht debuggen, versucht dies auszuführen:

location.href = '@Url.Action("AddToCart", "ShoppingCart")?Barcode=' + Barcode + '&size=' + $('#test2 :selected').text();;

sondern als Drop-down noch nicht gefüllt ist, hat, und Benutzer keine Größe gewählt hat, so addToCart return null.

Bitte helfen Sie mir freundlicherweise mit diesem Schritt

Antwort

0

diesen Code in Ihrer Erfolgsfunktion oder einen Timer hinzuzufügen, zu warten, bis der Erfolg Anruf beendet hat. Der Erfolgsrückruf wird ausgelöst, nachdem der Rest des Codes ausgeführt wurde. Daher ist Ihr addtoCart null.

+0

vielen Dank, es war was wirklich passiert ist – sariiia