检查ASP.NET Jquery检查不起作用

时间:2012-07-20 11:45:18

标签: jquery asp.net

我有一个复选框的onChange事件,它触发一个切换某些TR的可见性的函数。我的问题是这段代码只适用于firefox。我希望它适用于ie8。

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();
            };
        });
    };
};

有谁知道更好的方法吗?

由于

2 个答案:

答案 0 :(得分:1)

我会尝试使用“starts with”选择器而不是尝试将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();
            };
        });
    };
};

您不需要将id连接到索引号,因为在循环期间,您只需要检查索引。在该索引处,hide函数将隐藏所述索引处的行,因此无需指定要隐藏的行的确切ID。

答案 1 :(得分: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>