2013-06-12 65 views
4

我有一個自動完成的文本框。就這個。如何在自動完成實現的文本框中設置默認值?

<input id="txtcity" /> 
$("#txtcity").autocomplete({ 
    source: function (request, response) { 
    $.ajax({ 
     url: '@Url.Action("CityLookup", "PatientDemographic", "")', type: "POST", dataType: "json", 
     data: { searchText: request.term, maxResults: 10 }, 
     success: function (data) { 
     response($.map(data, function (item) { 
      return { label: item.Text, value: item.Text, id: item.Value } 
     })) 
     } 
    }) 
    }, 
    select: function (event, ui) { 
    $("#CityCode").val(ui.item.id); 
    }, 
    open: function() { 
    $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
    }, 
    close: function() { 
    $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
    } 
}); 

這將返回三個結果,讓我們說 「蘋果」, 「香蕉」, 「小白菜」。如何在渲染時將默認值設置爲「香蕉」?即text =「香蕉」值=「2」?

回答

13

可以自動完成初始化後,這樣設置值:

$("#txtcity").autocomplete({ 
    // do whatever 
}).val('Banana').data('autocomplete')._trigger('select'); 

更新了例: http://jsfiddle.net/55jhx/1/

+0

正是我想要:)整齊漂亮的伴侶。投票和檢查:) – Sakthivel

+0

它顯示文本框中的文本,但值爲空。文本='香蕉',值='2'。在數據庫中,值字段保留爲空。 – Sakthivel

+0

你可以嘗試在最後添加.trigger('select')嗎? – Edward

0

更改您的以下行

$('#txtcity').val() = item.value; 

$('#txtcity').val(item.text); 
+0

我嘗試它不工作vish – Sakthivel

0

觸發點擊在ul的第一個元素,以火爲選擇自動完成:

$("ul.ui-autocomplete li").first().trigger("click"); 
相關問題