2012-02-17 2 views
1

jQuery 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#" /> 

연합사 쿼리를 수행 : 사용자가 성공적 목록에서 부품 번호를 선택하면

<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

관련 문제