Javascript 从鼠标选择后未选择jQuery UI自动完成值

Javascript 从鼠标选择后未选择jQuery UI自动完成值,javascript,jquery,autocomplete,jquery-ui-autocomplete,Javascript,Jquery,Autocomplete,Jquery Ui Autocomplete,我已经使用jquery创建了自动完成功能。它工作得非常好,但对于ex: 每当我键入文本并使用鼠标从列表中选择值时,它将第一次被选中,但如果我再次键入并选择列表。这些值不会被选中 下面是我的代码。我搞不懂为什么它不拧 $(document).ready(function () { $('#txtAssignVendor').autocomplete({ source: AppConfig.PrefixURL + 'VendorData.ashx', position: {

我已经使用jquery创建了自动完成功能。它工作得非常好,但对于ex:

每当我键入文本并使用鼠标从列表中选择值时,它将第一次被选中,但如果我再次键入并选择列表。这些值不会被选中

下面是我的代码。我搞不懂为什么它不拧

$(document).ready(function () {
$('#txtAssignVendor').autocomplete({
    source: AppConfig.PrefixURL + 'VendorData.ashx',
    position: {
        my: "left bottom",
        at: "left top",
    }
});});
更新

下面的Vendor.ashx文件是我使用的代码

public void ProcessRequest(HttpContext context)
    {
        try
        {
            //DataTable dt = new DataTable();
            string term = context.Request["term"] ?? "";
            List<string> VendorNames = new List<string>();
            string connString = ConfigurationManager.ConnectionStrings["ConnAPP_NEIQC_PLNG"].ConnectionString;

            using (OracleConnection conn = new OracleConnection(connString))
            {
                OracleCommand cmd = new OracleCommand("", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = ConfigurationManager.AppSettings["PackageName"].ToString() + ".GET_VENDOR_NAME";
                cmd.Connection = conn;

                cmd.Parameters.Add(new OracleParameter { ParameterName = "P_VENDORNAME", Value = term, OracleDbType = OracleDbType.NVarchar2, Direction = ParameterDirection.Input });

                cmd.Parameters.Add(new OracleParameter
                {
                    ParameterName = "TBL_DATA",
                    OracleDbType = OracleDbType.RefCursor,
                    Direction = ParameterDirection.Output
                });

                if (conn.State != ConnectionState.Open) conn.Open();
                OracleDataAdapter da = new OracleDataAdapter(cmd);

               // da.Fill(dt);

                OracleDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    VendorNames.Add(dr["VENDORNAME"].ToString());
                    //VendorNames.Add(string.Format("{0}-{1}", dr["VENDOR_CODE"], dr["VENDOR_NAME"]));
                }
            }

            JavaScriptSerializer js = new JavaScriptSerializer();
            context.Response.Write(js.Serialize(VendorNames));
        }
        catch (Exception ex)
        {                
            throw;
        }    
    }

您能否提供请求的预期JSON结果

因为我没有JSON输出,所以我用一个基于AJAX的autocomplete做了一个工作示例。您应键入3个字符以开始搜索

$country.autocomplete{ 来源:函数请求、响应{ $.ajax{ 键入:“GET”, 网址:https://restcountries.eu/rest/v2/name/ +请求。期限, 数据类型:json, 成功:函数resp{ var数据=[] resp.forEachd=>{data.pushd.name} 响应数据 } }; }, 最小长度:3, 选择:功能事件,用户界面{ console.log ui.item? 所选:+ui.item.label: 未选择任何内容,输入为+此值; }, };
可以在JSFIDLE或堆栈片段中添加一个工作示例吗?@JamesCoyle:让我试试。我会更新它一旦DonemightBeen你必须重新注册鼠标点击事件,如果你是第二次重新绘制下拉界面,而不是重复使用它。提供的代码不足以确定问题。更多信息needed@JamesCoyle当前位置请看这里,它正在工作。但是,如果不公开整个图片,就很难看出它为什么不起作用。你的应用程序是否在互联网上公开?我如何测试?你可以替换你的url。并可能替换resp.forEach来处理从url返回的数据。如果你能从你的url提供JSON响应,我可以帮你。