2

に取り組んでいない私は、このページにjQueryの一部を持っている - http://blackeaglemedia.co.uk/cs-cart/form/preterm.htmはjQueryのは、IE7/8

期待される結果が、ユーザーとして構築部品番号欄には選択します表示されるはずです。

これはChrome、Firefox、IE9では問題なく動作しますが、IE7やIE8では動作していないようです。

の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(''); 
     }); 
}); 

答えて

2

まず第一に、あなたはあなたのコードをリワーク検討すべきです。コードの重複によって不必要に長くなります。おそらく10行以下に簡略化することができます。

特に、スイッチの代わりにオブジェクトを(ハッシュテーブルとして)使用するか、オプションに「SKU」を直接格納する必要があります。

第二にエラーがあるあなたは何(あるいは少なくとも)ヒントを与えるであろう、好ましくは開発者ツールでコンソール(F12>スクリプト>コンソール)に、IEが提供するエラーメッセージをご覧ください。

問題:何らかの理由でIEにlengthという変数が嫌いです。おそらく、同じ名前のプロパティと衝突します。名前を変更してみてください。