如何在用户点击提交时使jQuery自动完成执行search()

时间:2010-07-22 15:08:45

标签: javascript jquery html jquery-autocomplete

作为我上一篇文章的后续文章 - How would I trim the input to a JQuery auto-complete box?。我决定提出一个新问题而不是继续编辑那个问题。

我目前有jQuery ui autocomplete 1.8(左右)工作得相当好,除了一件事。如果用户只输入(有效)名称并点击提交,则自动完成查找永远不会运行,因此相关值永远不会被绘制并分配给输入框。当然,这是一个问题。阅读文档,这意味着我可以使用jQuery search()方法来解决这个问题。但是,我正在努力让它发挥作用。我已尝试将search()的调用放入文本输入的onblur事件中,并在提交按钮的onclick事件中,但无效 - 每当我点击提交时,我没有输入框的值。代码:

<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 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我已经回答了我自己的问题,并且还发现search()不像我想象的那样有效。我试过了:

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

发现在表单完成提交前一秒钟,自动完成框闪烁。显然search()只是让自动完成框执行普通搜索,而不是自动选择任何匹配结果搜索,这正是我所寻找的。