Привязать значение к текстовому полю - PullRequest
1 голос
/ 18 февраля 2012

При использовании 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>

Опять же, как только пользователь успешно выберет номер детали из списка, я хочу, чтобы описание соответствующей детали появилось в поле описания детали рядом с номером детали.

Спасибо.

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Это сработало:

$('#partdescription').val(ui.item.partdescription);
1 голос
/ 18 февраля 2012

Попробуйте

$('#partdescription').val(data['partdescription']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...