У меня есть набор радиокнопок на форме, и с помощью jQuery я хочу определить, когда пользователь изменил значение этих входов.Я могу сделать что-то вроде $('input.myinputs').on('change', ... );
, за исключением того, что если пользователь использует клавиатуру для навигации, он запускает каждый раз, когда они перемещаются от одной кнопки к следующей.Другими словами, он запускается несколько раз в процессе выбора пользователем.(Щелчок мышью работает нормально.)
Я хочу убедиться, что функция срабатывает только тогда, когда пользователь покидает группу радиосвязи (набор одноименных радиокнопок).Я должен иметь возможность подключаться к группе радиостанций, перемещаться вверх или вниз с помощью клавиш со стрелками, а затем , когда я переключаюсь из группы радиостанций , ТО затем функция срабатывает один раз.
Есть лиспособ сделать это?Все, что я пробовал, срабатывает каждый раз, когда я нажимаю клавишу со стрелкой, если фокус находится внутри группы.
Пример:
У вас есть маленькая форма:
- текстовый ввод
- радиогруппа, содержащая четыре опции, помеченные A, B, C, D;и
- второй текстовый ввод
Нажмите на первый текстовый ввод.Теперь положи свою мышь и нажми клавишу Tab.Используйте стрелки, чтобы выбрать третий вариант.Теперь нажмите Tab, чтобы перейти ко второму вводу текста.Это вызывает событие «изменить / размыть» в радиогруппе три раза - когда фокус переместился в радиогруппу, которая выбрала A;затем, когда вы указали стрелку к B, затем снова, когда вы указали стрелку к C.
Я хочу, чтобы событие сработало один раз , когда я перемещаю фокус с группы радиосвязи на второй текстовый ввод (чтовне группы радиосвязи), но только если я изменил то, что было выбрано в группе радиосвязи.Мне нужно «при изменении» для группы , а не для каждого отдельного параметра.
Конечно, она все равно должна работать для пользователей мыши или мобильных (сенсорных) пользователей;Я пользуюсь клавиатурными навигаторами, признавая, что большинство пользователей используют мышь или палец.
Пример HTML:
<input type="text">
<div class="inputApprove">
<label><input type="radio" name="R1" value="A" checked="checked"> A</label>
<label><input type="radio" name="R1" value="B"> B</label>
<label><input type="radio" name="R1" value="C"> C</label>
<label><input type="radio" name="R1" value="D"> D</label>
</div>
<input type="text">