2010-06-14 156 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