2009-04-24 8 views
0

IE8は、この関数のswitch文が実行されたときに、「エラー:オブジェクトが必要です」というメッセージ(実際のjqueryライブラリスクリプトにエラーがあり、javascriptファイルではありません)このコードはIE6、IE7、FF3、Safariで動作します。それはスイッチの '$(this)'セレクタと関係がありますか?ありがとう!IE8 Jquery Javascript「エラー:オブジェクトが必要です」バグ

 
function totshirts(){ 
    $('.shirt-totals input').val('0'); 
    var cxs = 0; 
    var cs = 0; 
    var cm = 0; 
    $.each($('select.size'), function() { 
     switch($(this).val()){ 
      case "cxs": 
       cxs ++; 
       $('input[name="cxs"]').val(cxs); 
       break; 
      case "cs": 
       cs ++; 
       $('input[name="cs"]').val(cs); 
       break; 
      case "cm": 
       cm ++; 
       $('input[name="cm"]').val(cm); 
       break; 
     } 
    }); 
} 
+0

どの行の手がかりがありませんか? IE 8にはスクリプトデバッガが組み込まれています。 – Greg

+0

エラーはJavaScriptファイルではなく、Jqueryライブラリファイルから来ています... Line 14 'value = jQuery.browser.msie &&!option.attributes.value.specified?option.text:option.value' –

+0

この例には何も追加していないため、余計なケースがありましたが、私の主張はより強くなっています。このより一般的なアプローチを使用すれば、将来的にはより簡単に変更できます。 – cgp

答えて

1

jQueryライブラリを1.2.6から1.3.2にアップグレードし、これで問題は解決しました。私は古いバージョンを持っていたことに気付かなかった。

ご協力いただきありがとうございます。

3

ああ、そういうわけではありません。

はこの線に沿ってより多くの何かを行います。追記として

$('.shirt-totals input').val('0'); 
$('select.size').each(function() { 
var name = $(this).attr('name'); 
var currVal = parseInt($("input[name='"+name+"']").val()); 
$("input[name='"+name+"']").val(currVal+1); 
}); 

を、私はjQueryの比較を「等しい」を行っているときで倍よりも良い単一引用符を扱うように見えることを発見する傾向があります。

関連する問題