Javascript 从鼠标选择后未选择jQuery UI自动完成值
我已经使用jquery创建了自动完成功能。它工作得非常好,但对于ex: 每当我键入文本并使用鼠标从列表中选择值时,它将第一次被选中,但如果我再次键入并选择列表。这些值不会被选中 下面是我的代码。我搞不懂为什么它不拧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: {
$(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响应,我可以帮你。