2011-05-19 103 views
0

我是相当新的JQuery的和Javascript ...如何从JQuery UI自动完成搜索结果填充选择元素?

目前我使用下面的技术或代码来填充从一个jQuery UI自动完成的搜索结果集的输入框...

var PopulateFields = function(event, ui){ 
       $('#Custid').val(ui.item.Custid); 
       $('#Alpha1').val(ui.item.Alpha1); 
       $('#Alpha2').val(ui.item.Alpha2); 
       $('#CustName').val(ui.item.CustName); 
       $('#Address1').val(ui.item.Address1); 
       $('#Address2').val(ui.item.Address2); 
       $('#City').val(ui.item.City); 
       $('#State').val(ui.item.State); 
    } 
    $("#search-by-custname").autocomplete({ 
       source: "cust_search_by_name.php", 
       minLength: 4, 
       select: PopulateFields 
    }); 

的php脚本抓取来自数据库的信息并通过JSON将其喷回,格式如下:

[{"label":"A Tire Store","value":"A Tire Store","Custid":"10000","Alpha1":"COD123456","Alpha2":"TIRE","CustName":"A Tire Store","Address1":"123 Cherry Lane","Address2":"","City":"City of Bla","State":"FL","Zip":"555555"}] 

这对输入框非常有用。
但是,如果我想让状态成为一个选择框,我将如何使用客户记录中的现有值填充该选择框?

或者,这是不可能的?

我想创建一个数据录入表单,我想要的功能之一是当他们搜索客户记录进行编辑时,他们的搜索将填充表单上的所有字段,然后他们可以编辑它们。

我想为国家选择框会救我一些数据验证逻辑...

我其他的想法是使用一个只读输入框的状态(因为我知道JQuery用户界面自动完成将填充的是) ,然后创建一个“状态选择器”选择框来填充只读输入“状态”框以重新提交。

想法?

回答

0

你是说你已经试过这个,它失败了吗?因为如果你有一个选择类似于

<select id="State"> 
    <option>AK</option> 
    <option>FL</option> 
    <option>WY</option> 
</select> 

然后调用$("#State").val("FL")会工作。

+0

好的......请原谅我的无知,但是,如何将“FL”的值硬编码从数据库中返回的JSON字符串中提取数据呢?目前我试过$('#State')。val(ui.item.State);尝试填充选择框,但是,这不起作用。然而,这段代码会填充一个输入框。 – jthompson333 2011-05-19 17:33:21

+0

我只是试图在你的例子中对这个值进行硬编码并且失败了...... – jthompson333 2011-05-19 17:39:13

+0

好的......我想出了部分问题。我忘记了我使用JQuery UI Combobox(自动完成)使选择框变得非常漂亮。因此,“Acutal”选择框正在填充,但它并未显示在JQuery UI Combobox(自动完成)中。我仍然不知道如何使它填充JQuery UI Combobox(自动完成)。我愚蠢地忘了提到我从他们的例子中使用了JQuery UI的这个特性。谢谢您的帮助。 – jthompson333 2011-05-19 19:21:19