Как мне найти предыдущее / значение по умолчанию переключателя в JS? - PullRequest
2 голосов
/ 24 апреля 2010

Я не уверен, возможно ли это вообще, но я подумал, что перед тем, как вступить в клуб, спрошу уродливое решение.

У меня есть группа переключателей, и я хочу вызвать функцию, если значение переключателя изменилось. Например, скажем, есть три кнопки X Y и Z с выбранной по умолчанию Y. Если пользователь нажимает на невыбранную кнопку (то есть X или Z), то функция срабатывает, но если он нажимает на Y (которая уже выбрана), ничего не происходит.

Естественно, лучшим решением будет запуск функции при событии onchange, но IE6 не запускает onchange до тех пор, пока не перестанет фокусироваться на элементе, который не является удовлетворительным.

Так есть ли способ узнать, каким было предыдущее значение радиокнопки или хотя бы его значением по умолчанию? Я мог бы легко создать массив значений по умолчанию и проверить это, но я пытаюсь уменьшить накладные расходы.

Пожалуйста, не jQuery предложения ;)

Ответы [ 2 ]

2 голосов
/ 24 апреля 2010

Используйте свойство defaultChecked элемента input.

Вы также можете использовать событие click для этого, потому что событие click срабатывает также, когда пользователь использует клавишу пробела / ввода для «проверки».

0 голосов
/ 24 апреля 2010

Ну, вы можете использовать событие onmousedown для элементов ввода. Он будет делать то, что вы просите (активировать событие, когда пользователь нажимает), но с помощью onmousedown вы можете проверить, был ли элемент уже выбран. Пример:

document.getElementById('#radio-button-x').onmousedown = function() {
    if (this.checked == true) {
        // was already selected
    } else {
        // not selected, do something
    }
};
...