我正在尝试使用自动选择在我的数据库中查找一些客户。目标是确定客户端是否存在,如果它不运行函数。现在我的函数将确定第一个 LI 是否与输入的值匹配。如果没有,那么它将清除结果并说客户端不存在。
目前我的代码只查看第一个返回的 LI,如果它与第一个 LI 不匹配,则它不认为客户端存在。
这会导致许多问题...如果用户决定单击自动完成中列出的第二项,我的代码将删除它并说客户端不存在。
另外,我有一个函数可以检查用户何时点击 ENTER 或 TAB ......我的目标是选择第一个列表项并在他们这样做时将其设为值。
我尝试了很多不同的东西......包括:包含......等。我想我现在只需要另一双眼睛。
$("#client").autocomplete({
source: "autoComplete/clientAutoComplete.php",
minLength: 2,
change: function (event, ui) {
//if the value of the textbox does not match a suggestion, clear its value
if ($(".ui-autocomplete li:first").text() != $(this).val()) {
$(this).val('');
clientDoesNotExist();
}
}
}).on('keydown', function (e) {
var keyCode = e.keyCode || e.which;
if ((keyCode == 9 || keyCode == 13) && ($(".ui-autocomplete li:first").text() == $(this).val())) {
$(this).val($(".ui-autocomplete li:visible:first").text());
}
});
在我在“#client”输入字段中输入“mit”后生成的一些 HTML(由 jQuery 生成)的示例:
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; top: 202.983px; left: 337.15px; display: block; width: 406px;">
<li class="ui-menu-item" role="menuitem">
<a class="ui-corner-all" tabindex="-1">mitch</a>
</li>
<li class="ui-menu-item" role="menuitem">
<a class="ui-corner-all" tabindex="-1">mitch2</a>
</li>
<li class="ui-menu-item" role="menuitem">
<a class="ui-corner-all" tabindex="-1">Mitchell56474</a>
</li>
</ul>
为了帮助进一步解释,此时如果我选择“mitch2”(因为它是第二个 LI),我当前的代码将运行 clientDoesNotExist(); 功能。我想我可能必须检查所有 LI 以确定返回的结果中是否存在完全匹配。