使用带有单选按钮的JQuery来隐藏/显示表行

时间:2009-07-21 14:30:58

标签: jquery asp.net-mvc

我的MVC表单上有两个单选按钮,用于隐藏或在表格中显示一行。

它在firefox中工作正常,但不是IE。似乎在IE中,当我选择第一个单选按钮时,JQuery函数才会被触发。我添加了额外的单选按钮,以确认它只会在第一个按钮上闪烁。

渲染我的按钮:                      <%= Html.RadioButton(“频率”,“每日”)%>             日常         

和                      <%= Html.RadioButton(“频率”,“每周”)%>             每周         

我的功能是:

$('table#ScheduleTable input#Frequency').addClass("FrequencyOption");
$('.FrequencyOption').change(function() {
    if ($(this).attr('checked') == true & $(this).val() == "Daily") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().hide();
    };
    if ($(this).attr('checked') == true & $(this).val() == "Weekly") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().show();
    }
});

5 个答案:

答案 0 :(得分:1)

试试这个

$('table#ScheduleTable input[id^="Frequency"]').change(function() {
    if ($(this).attr('checked') == true & $(this).val() == "Daily") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().hide();
    };
    if ($(this).attr('checked') == true & $(this).val() == "Weekly") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().show();
    }
});

答案 1 :(得分:0)

如果我们能够看到HTML源代码,那将会很有帮助。

可能是因为您的两个输入都有id="Frequency"。一个id在页面上应该是唯一的(即页面上只有一个项目可以id="Frequency")。

答案 2 :(得分:0)

也许你使用这个参考方法:

$('input[name=Frequency]').change(function() {
    if ($(this).attr('checked') == true)
{ 
    if ($(this).val() == "Daily") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().hide();
    }
    if ($(this).val() == "Weekly") {
        $('.recurEveryBox').children().show();
        $('.weekDayOption').children().show();
    }
}
});

答案 3 :(得分:0)

从我所看到的情况来看,这将导致页面上有两个<input type="radio" id="Frequency" />。具有相同ID的两件事可能会导致您的错误。如果确实发生了,请尝试消除它。

答案 4 :(得分:0)

我们必须在运行jQuery代码之前检查对象的长度。不知道这是否是确切的最佳方式...但它确实有效,我们已经花了足够的时间! ;)

Thansk提供所有帮助。