Из того, что я могу сказать, прочитав все, что я могу найти здесь, это кажется невозможным, но я просто подумал, что спрошу.
То, что я хочу сделать, - это помешать чекбоксу выполнять его действие по умолчанию и вместо этого запустить функцию. Эта функция должна знать флажки 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 и т. Д., И т. Д., Но, похоже, ничто не позволяет мне вызывать функцию, которая срабатывает, когда установлен флажок, который позволяет функции получить текущее значение флажка до того, как он будет изменен событием щелчка.
Возможно, мне просто нужно переосмыслить это, но если есть что-то очевидное, что я пропустил, я был бы очень благодарен