asp.net mvc: флажок onchange не работает - PullRequest
3 голосов
/ 02 февраля 2010

У меня есть страница с набором флажков, на которой я хочу запускать функцию javascript при изменении (я сделал что-то очень похожее с выпадающим списком - и это сработало)

Однако с флажками у меня есть три проблемы:

  1. мое событие onChange запускается только «иногда» (вы должны изменить фокус между различными элементами управления флажками

  2. когда он запускается, он возвращает результат предыдущего флажка (а не тот, на который только что нажали)

  3. jQuery всегда возвращает значение true

Создание флажка

<%= Html.CheckBox("sl-" + row.Id, value, new { onChange = "SuitabilityChecked("+row.Id+", "+key+")"})%>

Javascript

function SuitabilityChecked(providerId, parentRecordId) {
            var params = {};
            params.providerId = providerId;
            params.parentRecordId = parentRecordId;

            var value = $("#sl-" + providerId).val();               

            params.value = value;            
            $.getJSON("SuitabilityChecked", params, null);
        };

Ответы [ 2 ]

3 голосов
/ 02 февраля 2010

Браузеры забавны с переключателями и флажками и могут задерживать переключение до смены фокуса. Попробуйте добавить событие onclick для размытия или вызвать событие change напрямую.

Может быть, что-то вроде этого с использованием jQuery Live (непроверено, вне головы):

$(':checkbox').live('click', function() { $(this).change(); });
0 голосов
/ 02 февраля 2010

Что происходит:

  1. Флажок А нажал
  2. Флажок B нажал
  3. Флажок A потерял фокус и выстрелил onChange

Это создает впечатление, что флажок B возвращает результат флажка A. Если вы нажмете Tab после нажатия флажка B в этом сценарии, вы заметите, что его onChange сработает. 1015 *

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