Как заставить автозаполнение jQuery выполнять поиск (), когда пользователь нажимает на submit - PullRequest
1 голос
/ 22 июля 2010

Как следует из моего предыдущего поста - Как мне обрезать ввод в поле автозаполнения JQuery? . Я решил создать новый вопрос, а не продолжать редактировать его.

У меня в настоящее время автозаполнение jQuery ui 1.8 (или около того) работает достаточно хорошо, за исключением одной вещи. Если пользователь просто вводит (действительное) имя и нажимает «Отправить», автозаполнение никогда не запускается, и поэтому связанное значение никогда не захватывается и не присваивается блоку ввода. Это, конечно, проблема. Читая документацию, это означает, что я мог бы использовать метод jQuery search(), чтобы преодолеть это. Однако я изо всех сил пытаюсь заставить это работать. Я попытался как вызвать вызов search() в событии onblur ввода текста, так и в событии onclick кнопки submit, но безрезультатно - когда я нажимаю submit, у меня нет значения для поля ввода. Код:

<form action = "<?php echo $this->URL();?>" method="post">
    <fieldset>
        <ol>
            <li>
                <label for="Resource">Resource</label>
                <input id="Resource" name="Resource" class="text" type="text"  value="" onblur="jQuery('#Resource').search();"/>
            </li>
        </ol>
    </fieldset>
    <fieldset class="submit">
        <input id="Submit" name="Submit" type="Submit" class="Submit" value ="Submit" onclick = "jQuery('#Resource').search();"/>
    </fieldset> 
</form>

Итак, что именно я делаю не так?

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

Вам необходимо добавить код результата автоматического выбора любого совпадения в событие change .

Проверьте мой ответ на ваш другой вопрос: jQuery проблема автозаполнения - не совпадает, если пользователь не выбрал

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

Я ответил на свой вопрос, а также обнаружил, что search() работает не так, как я думал. Я попробовал:

    <input id="Submit" name="Submit" type="Submit" class="Submit" value ="Submit" onclick="jQuery('#Resource').autocomplete('search');"/>

И обнаружил, что за секунду до завершения отправки формы вспыхивает окно автозаполнения. Очевидно, что search() просто заставляет поле автозаполнения выполнять обычный поиск, а не автоматический поиск с выбором результата, что я искал.

...