0

IE8 throws an "Error: Object required" message (error in the actual jquery library script, not my javascript file) when the switch statement in this function runs. This code works in IE6, IE7, FF3, and Safari... Any ideas? Does it have something to do with the '$(this)' selector in the switch? Thanks!

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;
        }
    });
}
3
  • No clues as to which line? IE 8 does have a built in script debugger. Commented Apr 24, 2009 at 18:49
  • The error is coming from the Jquery Library file, not my javascript file... Line 14 'value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value' Commented Apr 24, 2009 at 18:52
  • Thanks for removing the extra cases as they weren't adding anything to the example, but I'd like to say it makes my point stronger as well: Use this more generic approach and you'll be able to change it easier in the future. Commented Apr 24, 2009 at 18:52

2 Answers 2

3

Oh noes, don't do it that way at all.

Do something more along the lines of this:

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

As a sidenote, I tend to find that jQuery seems to deal with single quotes better than doubles in when doing the "equals" comparison.

Sign up to request clarification or add additional context in comments.

Comments

1

I upgraded the jQuery library from 1.2.6 to 1.3.2 and this solved the problem. Didn't realize I had an old version- oops.

Thanks for your help all!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.