我的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();
}
});
答案 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提供所有帮助。