2012-02-17 79 views
1

在使用jQuery Autosuggest时,用户能够开始输入零件号,autosuggest显示类似零件的列表。选择零件后,我希望描述显示在零件号旁边的文本框中。零件编号和说明从CFC返回,但我无法将零件描述显示在零件描述文本框中。我怎样才能做到这一点?将值绑定到文本框

使用jQuery形式:

<form action="index.cfm?action=reports:part.test" method="post"> 
<fieldset> 
    <legend>test</legend> 
    <p>Start typing a part number.</p> 
    <p> 
     <label for="partnum">Part Number: </label> 
      <input type="text" id="partnum" name="partnum" /> 
      <input readonly="readonly" type="text" id="partdescription" name="partdescription" /> 
    </p> 
    <p> 
      <input type="submit" name="submit" value="Submit" /> 
    </p> 
</fieldset> 
</form> 


<cfsavecontent variable="datatables_definitions"> 
<!-- added by user.list --> 
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> 
$(document).ready(function(){ 



     $('#partnum').autocomplete(
      {source: function(request, response) { 
       $.ajax({ 
        url: "/reports/services/remote/partSuggest.cfc?method=lookUpPart&returnformat=json", 
        dataType: "json", 
        data: { 
         search: request.term, 
         maxRows: 10 
        }, 
        success: function(data) { 
         response(data); 
         $('#partdescription').val(partdescription); 
        }, 

      }) 
      }, 
      parse: function(data){ 
       return $.map(data, function(item) { 
        return { data: item, value: item, result: item }; 
       }); 
      } 

     }); 
    }); 
</SCRIPT> 
</cfsavecontent> 

<cfhtmlhead text="#datatables_definitions#" /> 

的CFC做查询:

<cfcomponent output="false"> 
    <cffunction name="lookUpPart" access="remote" returntype="any" > 
     <cfargument name="search" type="any" required="false" default=""> 
     <cfargument name="datasource" type="string" required="no" default="myDSN"> 

     <!--- Define variables ---> 
     <cfset var data=""> 
     <cfset var result=ArrayNew(1)> 

     <!--- Do search ---> 
     <cfquery name="getPart" datasource="#arguments.datasource#"> 
      SELECT top 20 partnum, partdescription 
      FROM part 
      WHERE partnum LIKE '%#trim(arguments.search)#%' 
      ORDER BY partnum 
     </cfquery> 

     <!--- Build result array ---> 
     <cfloop query="getPart"> 
      <cfset returnStruct = StructNew() /> 
      <cfset returnStruct["partnum"] = partnum /> 
      <cfset returnStruct["partdescription"] = partdescription /> 
      <cfset ArrayAppend(result,returnStruct) /> 
     </cfloop> 

     <!--- And return it ---> 
     <cfreturn serializeJSON(result) /> 
    </cffunction> 
</cfcomponent> 

同样,一旦用户成功地从列表中选择一个零件号,我想关联的部分的描述,以出现在零件编号旁边的零件描述框中。

谢谢。

回答

1

这结束了工作:

$('#partdescription').val(ui.item.partdescription); 
1

尝试

$('#partdescription').val(data['partdescription']); 
+0

谢谢你的建议,但这种选择的部件号后没有完成获得部分的描述出现在partdescription文本框中。 – aparker81 2012-02-20 14:54:14