Список данных HTML5 — смоделируйте событие клика, чтобы открыть все параметры

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

Я пытался имитировать щелчки и двойные щелчки, получая фокус с помощью $('#text-input').focus(); (это работает), а затем используя jquery .click() (один и два раза), .dblclick(), .trigger('click') и даже используя jquery.simulate.js. Все они вызывают $('#text-input').click(function() {...});, но фактически не влияют на состояние видимого элемента ввода в браузере.

Вот мой HTML:

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript" src="test.js"></script>
</head>
<body>
    <div id="main">
         <form>
             <datalist id="categories">
                 <option value="travel">
                 <option value ="work">
                 <option value="literature">
                 <option value="teaching">
             </datalist>
             <input type="text" list="categories" id="text-input">
             <button type="button" id="mic-button">
             </button>
         </form>
     </div>
</body>
</html>

И мой код с попыткой dblclick:

(function($) {

$(document).ready(function() {
    var textInput = $('#text-input');

    textInput.dblclick(function() {
        alert('Handler for .dblclick() called.');
    });

    $('#mic-button').click(function() {
        textInput.focus();
        // list all the options by tricking the datalist
        // to think the user double clicked on it
        textInput.dblclick();
    });
})(jQuery);

person user2570550    schedule 11.07.2013    source источник
comment
возможный дубликат Программно создать список данных input[type=url] с JavaScript   -  person SobiborTreblinka    schedule 06.12.2013
comment
Дубликат stackoverflow.com/q/14381217/453605   -  person Marcello Nuccio    schedule 19.01.2015


Ответы (1)


Эта функция в настоящее время не определена в спецификации, как бы хорошо это ни было.

См. следующую проблему, поскольку она затрагивает ту же проблему, которую вы описываете: javascript">Программное отображение списка данных input[type=url] с помощью JavaScript

person chainsawsalad    schedule 16.12.2013