2012-07-20 65 views
0

我有一个复选框的onChange事件,该复选框触发一个切换某些TR的可见性的函数。我的问题是这个代码只适用于Firefox。我希望它为ie8工作。ASP.NET jquery检查检查不起作用

function toggleVisibility() { 

    if ($("#ctl00_PageContent_chkVisibility").is(':checked')) { 
     $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function(i, val) { // Loop through rows in grid 
      if (i > 9 & i < 28) { 
       $('#ctl00_PageContent_freight_rate_column_chaair_r' + i).hide(); 
      }; 
     }); 
    } 
    else { 
     $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function(i, val) { // Loop through rows in grid 
      if (i > 9 & i < 28) { 
       $('#ctl00_PageContent_freight_rate_column_chaair_r' + i).show(); 
      }; 
     }); 
    }; 
}; 

有没有人知道这样做的更好方法?

感谢

回答

1

我会尝试使用“开始与”选择,而不是试图Concat的ID以索引号。尝试是这样的:

$('#ctl00_PageContent_chkVisibility').change(function() { 
    toggleVisibility() 
}); 

function toggleVisibility() { 
    if ($("#ctl00_PageContent_chkVisibility").is(':checked')) { 
     $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function (i, val) { // Loop through rows in grid 
      if (i > 9 & i < 28) { 
       $('input[id^="ctl00_PageContent_freight_rate_column_chaair_r"]').hide(); 
      }; 
     }); 
    } 
    else { 
     $('#ctl00_PageContent_freight_rate_column_chaair tr').each(function (i, val) { // Loop through rows in grid 
      if (i > 9 & i < 28) { 
       $('input[id^="ctl00_PageContent_freight_rate_column_chaair_r"]').show(); 
      }; 
     }); 
    }; 
}; 

您应该不需要,因为在循环过程中Concat的ID以索引号,你只需要检查的指标。在该索引处,隐藏功能将隐藏所述索引处的行,因此不需要指定想要隐藏的行的确切ID。

+0

嘿感谢帮我。在我的if条件中,我使用了我的原始jquery选择器,因为它隐藏了我的用户控件,而不是根据ID隐藏正确的行。谢谢。 – 2012-07-20 14:05:43

+0

没问题,我很高兴能帮上忙! – ORION 2012-07-20 14:09:28

0

我想你已经声明这样的事情你的aspx页面上:

<asp:CheckBox ID="chkId" runat="server" onchange="toggleVisibility()"/> 

这部作品FF但不是在IE浏览器。

的复选框元素卸下onchange属性,并删除功能toggleVisibility 并尝试使用jquery的注册你的函数:

<script language="javascript"> 
$(function() { 

$('#ctl00_PageContent_chkVisibility').change(function() {    
     // 
     // paste here your existing code , the body of the function toggleVisibility 
}); 
}); 
</script>