2011年12月22日 星期四

[jquery] 解決 IE 瀏覽器不能使用 change , 與 option 不能 hide()

IE瀏覽器一直以來對於Select 的 change 一直是有問題的.
試過了網路上的一些方法, 結果最後只能用這種方法來解決是最恰當的,
 就是 select 上加 onchange , 如此一來才能完全模擬出 $.change 的效果.

 另外 IE 很賤的是 select 下的 option 不能去 hide() , 只能 remove() 或是 attr('disabled',true) . 

所以看來只能以此種方式處理, 勉強差強人意. 在其他瀏覽器正常的,
我只能說IE 你真是好樣的.

Html:
<select onchange="type_7_change(this)" id="type_7" name="type_7"> <option value="">請選擇...</option> <option value="69">A-執行費用</option> <option value="71">C-委外費用</option> <option value="72">D-贈品費用</option> <option value="73">E-其他費用</option> </select> Javascript :
function type_7_change(self){ var $select_option = $(self).find('option:selected'); if ($select_option.val() != '' ) { var str = $select_option.text().substr(0,1); if (str) { $('#type_8 option:eq(0)').attr('selected',true); $('#type_8 option').each(function(i,j){ if ($(j).val() != '') { $(j).show(); if ($.browser.msie) $(j).attr('disabled',false); else $(j).show(); if ($(j).text().substr(0,1) != str) { if ($.browser.msie) $(j).attr('disabled',true); else $(j).hide(); } } }); } } }

【下列文章您可能也有興趣】

沒有留言: