HTML Form - Формирование формы отправки с использованием клавиши ввода не работает, когда фокус находится на списке выбора - PullRequest
2 голосов
/ 30 июля 2010

Я застрял в вышеуказанной проблеме.У меня есть простая форма, как показано ниже, с вводом текста, списком выбора и кнопкой отправки.Когда фокус находится на вводе текста, и я нажимаю Enter, форма отправляется.Если фокус находится на списке выбора, отправка не срабатывает.Я хочу отправить форму независимо от того, какое поле имеет фокус.

<html>
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input id='text1'/>
        <select>
            <option value="volvo">Volvo</option>
            <option value="saab">Saab</option>
            <option value="mercedes">Mercedes</option>
            <option value="audi">Audi</option>
        </select>
        <input type='submit' onclick='alert("you submitted the form")'/>
    </div>
    </form>
</body>
</html>

Ответы [ 2 ]

7 голосов
/ 30 июля 2010

Это нормальное поведение браузера, чтобы выбрать опцию с помощью Enter.

Что вы можете сделать, это присоединить слушателя к событию keyDown элемента select и отправить форму, когда пользователь нажал клавишу ввода. Например. с JQuery:

$('#your-select').keydown(function(e){  
  if (e.keyCode == 13) {
      $('#your-form').submit();
    } });

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

0 голосов
/ 30 июля 2010

firefox делает это по умолчанию, т. Е. Вам нужен некоторый тип функции javascript, потому что IE привязывает отправку при входе только к входам.

...