2

ich auf dieser Seite ein Stück jQuery haben - http://blackeaglemedia.co.uk/cs-cart/form/preterm.htmjQuery funktioniert nicht auf IE7/8

Das erwartete Ergebnis sollte die Teilenummer Feld zeigen, wie die Benutzerauswahl macht aufgebaut.

Dies funktioniert in Chrome, Firefox und IE9, aber es scheint nicht in IE7 oder IE8 zu arbeiten.

jQuery:

$(function() { 
var sku1 = sku2 = sku3 = sku4 = sku5 = sku6 = length = ''; 
$("#options").change(function(){ 

    switch($(this).val()){ 
     case "3134": 
      sku1 = 'TB'; 
     break; 
     case "3135": 
      sku1 = 'LT'; 
     break; 
     case "3154": 
      sku1 = 'LTR'; 
     break; 
     case "3136": 
      sku1 = 'BO'; 
     break; 
     case "3138": 
      sku1 = 'MC'; 
     break; 
     case "3139": 
      sku1 = 'NC'; 
     break; 
     case "3183": 
       sku1 = 'STA'; 
     break; 
    }$('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 
$("#options2").change(function(){ 
    switch($(this).val()){ 
     case "3111": 
       sku2 = 'LC'; 
     break; 
     case "3110": 
      sku2 ='LCA'; 
     break; 
     case "3112": 
      sku2 ='E2000'; 
     break; 
     case "3113": 
      sku2 ='E2A'; 
     break; 
     case "3114": 
      sku2 ='FC'; 
     break; 
     case "3115": 
      sku2 ='FCA'; 
     break; 
     case "3116": 
      sku2 ='ST'; 
     break; 
     case "3117": 
      sku2 ='SC'; 
     break; 
     case "3118": 
      sku2 ='SCA'; 
     break; 
    } $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 
$("#options3").change(function(){ 
    switch($(this).val()){ 
     case "3175": 
      sku3 = 'PRE2'; 
     break; 
     case "3121": 
      sku3 ='PRE4'; 
     break; 
     case "3122": 
      sku3 ='PRE6'; 
     break; 
     case "3123": 
      sku3 ='PRE8'; 
     break; 
     case "3124": 
      sku3 ='PRE12'; 
     break; 
     case "3125": 
      sku3 ='PRE16'; 
     break; 
     case "3126": 
      sku3 ='PRE24'; 
     break; 
     case "3176": 
      sku3 ='PRE48'; 
     break; 
    } $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 

$("#options4").change(function(){ 
    switch($(this).val()){ 
     case "3127": 
       sku4 = '09'; 
     break; 
     case "3182": 
      sku4 ='G657A1'; 
     break; 
     case "3128": 
      sku4 ='62'; 
     break; 
     case "3129": 
      sku4 ='50'; 
     break; 
     case "3130": 
      sku4 ='OM3'; 
     break; 
     case "3131": 
      sku4 ='OM4'; 
     break; 
    } $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 

$("#options5").change(function(){ 
    switch($(this).val()){ 
     case "3142": 
       sku5 = 'LC'; 
     break; 
     case "3143": 
      sku5 ='LCA'; 
     break; 
     case "3144": 
      sku5 ='E2000'; 
     break; 
     case "3145": 
      sku5 ='E2A'; 
     break; 
     case "3146": 
      sku5 ='FC'; 
     break; 
     case "3147": 
      sku5 ='FCA'; 
     break; 
     case "3148": 
      sku5 ='ST'; 
     break; 
     case "3149": 
      sku5 ='SC'; 
     break; 
     case "3150": 
      sku5 ='SCA'; 
     break; 
    } $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 

$("#options6").change(function(){ 
    switch($(this).val()){ 
     case "3151": 
       sku6 = 'LZSH'; 
     break; 
     case "3177": 
       sku6 ='PE'; 
     break; 
    } $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 

$('#length').change(function(){ 
    length = $(this).val(); $('#sku').val(sku3+sku2+sku5+sku4+sku1+sku6+length); 
}); 
}); 

$(function() { 
    $('input[type=text]#length').focus(function() { 
     $(this).val(''); 
     }); 
}); 

Antwort

2

Zunächst einmal sollten Sie Ihren Code Überarbeitung berücksichtigen. Es ist unnötig lange mit einigen Code-Duplizierung. Es könnte wahrscheinlich auf 10 Zeilen oder weniger vereinfacht werden.

Insbesondere sollten Sie Objekte (als Hash-Tabellen) anstelle von Switches verwenden oder die "SKUs" direkt in den Optionen ablegen.

Zweitens sollten Sie auf die Fehlermeldung, die IE bietet, vorzugsweise in der Konsole in Developer Tools (F12> Skript> Konsole), die Sie einen Hinweis geben, was (oder zumindest wo) der Fehler gibt.

Zu Ihrem Problem: Aus irgendeinem Grund IE mag keine Variable length genannt werden. Wahrscheinlich kollidiert es mit einer Eigenschaft gleichen Namens. Versuchen Sie es umzubenennen.

Verwandte Themen