JQuery自动完成并自动提交表单

时间:2012-05-18 09:30:08

标签: jquery forms

我正在使用JQuery自动完成(jquery.autocomplete.js)。 我想知道如果一个项目被选中后如何提交表格?  当前选择一个项目时,你必须按两次输入,一次到  将项目放入搜索字段,然后提交一次搜索。 ID  喜欢在第一次输入或通过鼠标选择项目时提交搜索。

如何使用此提交表单???? 这是我的代码::

$(function() {
     $("#artist" ).autocomplete({
     source: function( request, response ) {
            $.ajax({
                url: "http://",
                dataType: "jsonp",
                data: {
                    results: 12,

                    format:"jsonp",
                    name:request.term
                },

这是形式::

<form id="mainSearchForm" onSubmit="ytvbp.listVideos(this.queryType.value, this.searchTerm.value, 1); document.forms.searchForm.searchTerm.value=this.searchTerm.value; ytvbp.hideMainSearch(); document.forms.searchForm.queryType.selectedIndex=this.queryType.selectedIndex; return false;">
       <div align="left">
         <select name="queryType" onChange="ytvbp.queryTypeChanged(this.value, this.form.searchTerm);">
           <option value="all" selected="true">All Videos</option>
           <option value="top_rated">Top Rated Videos</option>
           <option value="most_viewed">Most Viewed Videos</option>
           <option value="recently_featured">Recently Featured Videos</option>

         </select>
         <input name="searchTerm" id="artist" >
         <input type="submit" value="Search">
       </div>
       </form>

2 个答案:

答案 0 :(得分:5)

您尚未发布自动完整代码或表单代码,因此我不知道您希望任何人为您量身定制答案。但是,您只需要将某些内容绑定到select事件。这应该这样做:

$('#whatever').autocomplete({
    select: function() {
        $(this).closest('form').trigger('submit');
    }
});

Docs here.

答案 1 :(得分:0)

你可以使用这样的select函数,Select Event in Autocomplete

$( "#yourID" ).autocomplete({
        source: "YourUrl.php",
        minLength: 2,
        select: function( event, ui ) {
            log( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
                             // you can replace this and put the submit code. by calling submit() method. 
                       $(this).closest('form').trigger('submit');

        }
    });