Получение значения CURRENT для флажка onclick - PullRequest
5 голосов
/ 30 ноября 2011

Из того, что я могу сказать, прочитав все, что я могу найти здесь, это кажется невозможным, но я просто подумал, что спрошу.

То, что я хочу сделать, - это помешать чекбоксу выполнять его действие по умолчанию и вместо этого запустить функцию. Эта функция должна знать флажки CURRENT состояние - в отличие от состояния, в котором она будет находиться после того, как событие щелчка переключило его - и это переключение необходимо предотвратить.

Скажем, у меня есть этот вход, например

<input type="checkbox" onclick="setDefault(this);return false;" />

И функция setdefault выглядит примерно так

function setDefault(el) {
    if(jQuery(el).is(':checked'))
        {
        alert('Turning current default off- setting default to Home settings');
        jQuery(el).prop('checked',false);
        return; 
        }
    else
        {
        alert('setting a new default');
        jQuery(el).prop('checked',false);
        return; 
        }
}

Когда он запускается, он получает статус, на который был установлен флажок, тогда как мне нужно, чтобы он не менял статус, выяснил его текущий статус и затем решил, что делать.

Я попробовал каждую комбинацию protectDefault () и return false, о которой я могу думать как в функции, так и в событии onclick, и пытался использовать событие onchange и т. Д., И т. Д., Но, похоже, ничто не позволяет мне вызывать функцию, которая срабатывает, когда установлен флажок, который позволяет функции получить текущее значение флажка до того, как он будет изменен событием щелчка.

Возможно, мне просто нужно переосмыслить это, но если есть что-то очевидное, что я пропустил, я был бы очень благодарен

1 Ответ

2 голосов
/ 30 ноября 2011

Поскольку изменение уже произошло, состояние флажка противоположно тому, что сейчас .Это решит вашу первую проблему.

Чтобы сбросить состояние, просто установите значение checked для флажка в то, чем оно не является сейчас, как и прежде.звучит так, как сказал бы Безумный Шляпник!)

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