Как отправить форму выбора элемента в автозаполнении jquery? - PullRequest
1 голос
/ 31 марта 2012

вот JavaScript и HTML моего приложения

<script>
$(function() {
    $( "#searchfield" ).autocomplete({
        source: "http://localhost/search.php",
        minLength: 1,
        select: function( event, ui ) {
                        $("#search_form").submit(); 
        }
    });
});
</script>

<form id="search_form" action="search" method="get">
                <input id="searchfield" type="text" name="q" value="Search..." onfocus="if (this.value == 'Search...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search...';}" />
                <input id="searchbutton" type="submit" name="submit" value="Search" />
                </p>
            </form>

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

enter image description here

При этом условии я хочу отправить форму.

1 Ответ

2 голосов
/ 31 марта 2012

Плагин предотвращает всплывание событий при нажатии клавиши ВВОД и открытом меню:

case keyCode.ENTER:
case keyCode.NUMPAD_ENTER:
    // when menu is open and has focus
    if (self.menu.active) {
        // #6055 - Opera still allows the keypress to occur
        // which causes forms to submit
        suppressKeyPress = true;
        event.preventDefault();
    }​

Вы можете повторно связать событие keydown и проверить нажатие клавиши ENTER для отправки формы:

$( "#searchfield" )
    .autocomplete()
    .bind('keydown', function() {
        var key = event.keyCode;
        if (key == $.ui.keyCode.ENTER || key == $.ui.keyCode.NUMPAD_ENTER) {
            $('#search_form').submit();
        }
    });​

DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...