2010-01-06 126 views
0
function check_info(id,value){ 
    var data = $("#"+id+":checked").val(); 
    if(value==1){ 
     if(data == 'on'){ 
      var id_val = id.substring(7); 
      $("#user_g"+id_val).css("display","block"); 
      $(".chkbox_"+id_val).attr("checked","checked"); 
      $("#user_hidden_"+id_val).val("2"); 
     } 
     else{ 
      var id_val = id.substring(7); 
      $("#user_hidden_"+id_val).val("0"); 
      $("#user_g"+id_val).css("display","none"); 
      $(".chkbox_"+id_val).attr("checked",""); 
      $("#user_hidden_"+id_val).val("0"); 
     } 
    } 
...... 
...... 
} 

該功能應該從這裏調用,並根據複選框選項,它會顯示下面的div或hide。它適用於所有瀏覽器,但不適用於任何版本的IE。請幫忙。簡單的jQuery功能適用於所有瀏覽器,但不適用於IE

<input name="gro_id_1" type="checkbox" id="gro_id_1" onclick="javascript:check_info(this.id,'1')" title="Office"> 


<div id="user_g1" class="gr_block"> 
    --- outupt --- 
</div> 

回答

3

考慮:

  1. 改寫的if(data == 'on')作爲if ($("#"+id).is(":checked"))
  2. .removeAttr("checked")
  3. 替換.attr("checked", "")結合用下面的複選框事件,而不是onclick=

    $(function() { 
        $("#gro_id_1").click(function() { 
         check_info(this.id, '1'); 
        }); 
    }); 
    
1

我建議use $("#user_g"+id_val).show()而不是$("#user_g"+id_val).css("display","block");use $("#user_g"+id_val).hide()而不是$("#user_g"+id_val).css("display","none");

這可能不是問題,但這是更隱藏和顯示元素的「jQuery標準」方式。

另外,value var是從哪裏來的?它是否在範圍內,因爲我在代碼片段中看不到它。

onclick="javascript:check_info(this.id,'1')"可能是你的問題。嘗試上面Oren的建議。