Я хочу открыть диалоговое окно jQuery UI, когда пользователь нажимает ввод или пробел на заданном элементе. Похоже, что клавиши ввода / пробела обрабатываются диалоговым окном, что вызывает нажатие элемента по умолчанию (кнопка отмены). Диалог закрывается почти сразу после его открытия.
Вот упрощенная демонстрация:
<script type="text/javascript">
function Go() {
$("#dialog").text("Are you sure?").dialog({
modal: true,
buttons: {
Cancel: function() {
$("#dialog").dialog("destroy");
},
OK: function() {
$("#dialog").dialog("destroy");
}
}
}); // end .dialog
}
</script>
<input type="button" value="Test" onkeydown="Go()" />
<div title="Dialog" style="display: none;" id="dialog"></div>
Если кнопка получает фокус, а затем пользователь нажимает пробел, диалоговое окно открывается, а затем немедленно закрывается. Если пользователь нажимает клавишу ввода, диалоговое окно закрывается так быстро, что оно даже не мигает (по крайней мере, так было в моем опыте с Firefox 3.5.3)
Как запретить диалогу обрабатывать ключ от события onkeydown, вызвавшего открытие диалога?