自動選択を使用して、DB内のいくつかのクライアントを見つけようとしています。目標は、クライアントが関数を実行していない場合に、クライアントが存在するかどうかを判断することです。今のところ、私の関数は最初のLIが入力された値と一致するかどうかを判断します。そうでない場合は、結果がクリアされ、クライアントが存在しないことが示されます。
現在、私のコードは最初に返されたLIのみを調べ、最初のLIと一致しない場合、クライアントが存在するとは見なしません。
これは多くの問題を引き起こします...ユーザーがオートコンプリートにリストされている2番目の項目をクリックすることを決定した場合、私のコードはそれを消去し、クライアントが存在しないと言います。
また、ユーザーがEnterキーまたはTabキーを押したときにチェックする関数があります...私の目標は、最初のリストアイテムを選択し、これを実行した場合にその値を作成することです。
私はさまざまなことを試しました...:contains...などを含みます。この時点でもう一組の目が必要だと思います。
$("#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」を選択した場合(2番目のLIであるため)、現在のコードはclientDoesNotExist()を実行します。働き。返された結果に完全に一致するものが存在するかどうかを判断するには、すべてのLIをチェックする必要があると思います。