2010-06-14 182 views
-3
$('#PbtnSubmit').click(function() { 
    if ($("#PricingEditExceptions input:checkbox:checked").length > 0) { 
     var chec = $('#PricingEditExceptions input[type=checkbox]:checked'); 
     var PMstrIDs = chec.map(function() { 
      return $(this).val(); 
     }).get().join(","); 
     alert(PMstrIDs); 
     $('#1_exceptiontypes').attr('value', exceptiontypes) 
     $('#1_PMstrIDs').attr('value', PMstrIDs); 
    } else { 
     alert("please select atleast one exception"); 
     return false; 
    } 
}); 

var checked = $('#PricingEditExceptions input[type=checkbox]:checked'); 

此代码在Firefox中返回正确的值,但不在IE8中。有什么我需要改变?这段代码有什么问题?

为什么我没有得到IE8中的所有选中的复选框?

请问有人能帮我吗?

+0

woohhh ...你的代码现在真的不一样了! :/ – Zuul 2010-06-14 20:38:29

+3

如果您不从问题中删除代码,这会更容易。 \ *叹息\ * – Eric 2010-06-14 21:20:41

回答

10

你的“如果”声明没有关闭...对于IE浏览器,这是被判处死刑:)

+0

对不起我发送我的al代码.. – user354625 2010-06-14 20:29:58

+0

请看我的更新.. – user354625 2010-06-14 20:30:44

3

Zuul的答案很可能是正确的答案。但我也想指出IE和其他浏览器之间的另一个区别。如果从change()事件处理程序调用此代码,则可能会看到意外的行为。 IE和其他浏览器在处理复选框更改事件的方式上有所不同。

您应该始终绑定click()事件而不是change()事件。

+0

有关方面,请您指出! (我没有考虑那个棱镜)......一个赞成你对问题的广泛看法的投票;) – Zuul 2010-06-14 20:33:31