4

This code run on Chrome, FF, Safari, IE9 but on IE8 i get this error:

Message: Object doesn't support this property or method Line: 80 Char: 7 Code: 0

and this is what code its stopping on: (line 80 is on "return [" but the developer tool debugger highlights all this code below)

return [
    {
        title:'Edit',
        customClass:'actionEdit',
        action:{
            type:'getLink',
            url:'/admin/products/edit/'+data.id()+''
        }
    },
    {
        title:'Attaches',
        customClass:'actionAttaches',
        action:{
            type:'getLink',
            url:'/admin/attaches/index/product/'+data.id()+''
        }
    },
    {
        title:'Delete',
        customClass:'actionDelete',
        action:{
            type:'postLink',
            url:'/admin/products/delete/'+data.id()+'',
            confirm:'Are you sure you want to delete %s?',
            arg:$('#ProductAdminIndexList #'+data.id()+' .productId').text().trim()
        }
    }
];

I found others similar cases but i don't know why occur and how can solve this problem.

manzapanza
  • 6,087
  • 4
  • 39
  • 48
  • 1
    IE8 doesn't support some (non-standard but common) Javascript methods like `trim`. See here: http://stackoverflow.com/a/2308157/1001985 – McGarnagle Sep 19 '12 at 22:18

2 Answers2

8

Solve it like this.

arg: $.trim($('#ProductAdminIndexList #'+data.id()+' .productId').text())
howdy
  • 96
  • 1
  • 1
    why the downvote? we already know that jQuery is being used, so why not use its trim function? – lbstr Sep 19 '12 at 22:19
2

I'm almost positive IE8 doesn't have a trim() method. jQuery however provides an implementation, call it like $.trim() since it looks like you're already using jQuery.

wsanville
  • 37,158
  • 8
  • 76
  • 101