Автозаполнение пользовательского интерфейса JQuery, заполняющее скрытое поле с идентификатором

I ' m пытается заставить плагин автозаполнения заполнить одно текстовое поле названием университета, а другое - кодом университета. Приведенный ниже код возвращает результаты и заполняет текстовое поле названия университета, но я не могу понять, как заполнить другой ввод.

Я пробовал следовать этому примеру , но столкнулся с проблемами даже при вызове веб-метода. Странно то, что казалось, что ajax был вызван до того, как автозаполнение было прикреплено к текстовому полю, в которое вводит пользователь. Не уверен, что запускало js для вызова метода автозаполнения.

Мне пришлось объединить части из приведенного выше с документом jquery ui при автозаполнении с использованием json ( ссылка ). Но я до сих пор не знаю, как сделать так, чтобы второй ввод был заполнен, как в первом примере.

есть идеи?

Здесь ' s jquery и html


Вот мой .net webmethod

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using System.Web.Script.Services;
using System.Text;
using System.Data;

[ScriptService()]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class AutoComplete : System.Web.Services.WebService
{

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public List GetUniversities(string data)
    {
        List UniversityList = new List();

        try
        {
            clsDataBase db = new clsDataBase();
            DataTable dt = new DataTable();
            StringBuilder sql = new StringBuilder();
            Dictionary parms = new Dictionary();

            sql.Append(" SELECT univ_code ");
            sql.Append(" , INITCAP(univ_desc) AS descr ");
            sql.Append(" FROM lk_university ");
            sql.Append(" WHERE UPPER(univ_desc) LIKE UPPER(?) ");
            sql.Append(" ORDER BY univ_desc  ");
            parms.Add("university", "%" + data + "%");

            dt = db.executeParmQuery(sql.ToString(), parms);
            DataView dv = new DataView(dt);


            ArrayList filteredList = new ArrayList();

            foreach (DataRowView drv in dv)
            {
                University university = new University();
                university.UnivCode= drv["univ_code"].ToString();
                university.Descr = drv["descr"].ToString();

                UniversityList.Add(university);
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
            //return null;
        }
        //}
        return UniversityList;
    }


    public class University
    {        
        string _value;
        public string value
        {
            get { return _Descr + " (" + _UnivCode + ")"; }            
        }

        string _Descr;
        public string Descr
        {
            get { return _Descr; }
            set { _Descr = value; }
        }

        string _UnivCode;
        public string UnivCode
        {
            get { return _UnivCode; }
            set { _UnivCode = value; }
        }
    }
}

EDIT

Я смог заставить его работать, добавив событие select. В моем предыдущем тестировании он был там, но не в том месте (изначально вложенный в событие успеха). Также пришлось добавить три строки в событии успеха, которые устанавливают значение: item.Descr, Descr: item.Descr и UnivCode: item.UnivCode. Я не совсем понимаю, на что они ссылаются или что они делают, поскольку фактическая настройка входов выполняется в событии select, где я указываю фактический идентификатор входов ($ ('# university'). Val (ui .item.Descr);), но это было необходимо для того, чтобы код заработал.

Вот рабочий jquery без каких-либо других изменений в коде html или .net.