Использование JQuery с RadioButtons для скрытия / отображения строк таблицы - PullRequest
2 голосов
/ 21 июля 2009

У меня есть две радиокнопки в форме 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 ]

1 голос
/ 21 июля 2009

Попробуйте это

$('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();
    }
});
0 голосов
/ 02 сентября 2009

Мы должны были проверить длину объекта перед запуском кода jQuery. Не знаю, был ли это лучший способ сделать это ... но это работает, и мы потратили достаточно времени! ;)

Спасибо за помощь.

0 голосов
/ 02 сентября 2009

Насколько я вижу, это приведет к двум <input type="radio" id="Frequency" /> на странице. Две вещи с одинаковым идентификатором могут быть причиной ваших ошибок. Попробуйте устранить это, если это действительно происходит.

0 голосов
/ 21 июля 2009

Может быть, если вы используете этот метод ссылки:

$('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();
    }
}
});
0 голосов
/ 21 июля 2009

Будет полезно, если мы увидим исходный код HTML.

Это может быть потому, что оба ваших входа имеют id="Frequency". Идентификатор должен быть уникальным на странице (т. Е. Только один элемент на странице может иметь id="Frequency").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...