0

Мои глаза уничтожены, поэтому этот вопрос будет посвящен событиям клавиатуры.keypress event vs click event

Когда я определить обработчик события щелчка на кнопке, например:

$("#button").on("click", function() { 
    alert("clicked"); 
}); 

Поскольку я не могу использовать мышь (и я думаю, что большинство веб-приложений используют событие щелчка, чтобы выполнить HTML элемент), я проверил это событие, перейдя на кнопку и нажав на нее. Событие успешно запущено. С тех пор я пришел к выводу, что нажатие клавиши ввода имитирует событие click для элемента html. Я выполнял кнопки отправки много раз, поэтому нет оснований полагать, что это не так.

Теперь я создаю текстовое поле, которое должно быть заполнено значением при доступе. Таким образом, я сделал это:

$("#text").on("click", function() { 
    alert("clicked"); 
}); 

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

Вот код, я работаю над:

Я использую Автозаполнение JQuery-UI в. Я хочу, чтобы текстовое поле заполнялось, когда пользователь входит в текстовое поле. Я нажимаю ввод, чтобы войти внутрь ...

$("#tags").autocomplete({ 
    source: names, 
    minLength: 0, 
    select: function(event, ui) { 
     var index = names.indexOf($(this).prop("value")); 
     $(this).val(""); 
     $("#selected").append("<li>"+names[index]+ 
     "<input type='hidden' id='id' value='"+ids[index]+"'/>"+ 
     "<a href=''>remove</a></li>"); 
     ids.splice(index, 1); 
     names.splice(index, 1); 
     return false; 
    } 
}).on("click", function(event) { 
    $(this).autocomplete("search", $(this).val()); 
}); 

Есть ли разница между нажатием клавиши ввода и щелчком мыши? Что мне делать?

+0

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

+0

Кнопки отправки имеют статус «по умолчанию» и, как таковые, «нажимают», когда пользователь нажимает . Если вы добавите кнопку «отправить», она будет работать так, как вы ожидаете. – allnodcoms

ответ

1

Захват события нажатия клавиш и тестирование для «входа» - лучший способ справиться с этим. Причина, по которой кнопки запускаются без входа, связана с тем, что они имеют тип «submit».

+0

Я отредактировал свой вопрос, чтобы включить реальные части моего кода. Правильно ли я обрабатывал события кликов для выбранных пользователей? Что касается клавиатуры, мне нужно только привязать событие нажатия клавиши и проверить правильность ввода ключей? – morbidCode

+0

Я не слишком хорош с jquery, поэтому не могу ответить на первую часть руки, но насколько вторая часть обязательна, нажатие клавиши и проверка должны быть в порядке – Orangesandlemons

1

В принципе, это не рекомендуется стрелять onClick на панели редактирования, так как у вас не будет альтернатив клавиатуры без усилий.
Поскольку вы слепы как я (я полагаю, это из вашего вопроса), вы, вероятно, используете программное обеспечение для чтения с экрана. В программах чтения с экрана Enter обычно имитирует щелчок мыши, но. Но JAWS для Windows, например, добавляет еще большую гибкость, позволяя вам настроить, что делать, когда нажата клавиша Enter: имитировать щелчок мышью или отправить Enter в систему.
Итак, в вашем случае я бы нажал кнопку, которая запустила бы ваше событие onClick.