クエリオートコンプリートを使用して、MySQLデータベースから取得するメンバーを選択しています。コードのこの部分は正しく機能します。次に、選択した値を取得し、それをURLに追加して開くスクリプトを作成しました。スクリプトはそれを行いますが、問題があります。
最初の問題は、ファイルがロードされるときに、オートコンプリートテキスト入力が変更されるのを待たずに、ページがロードされるときに実行されることです。ブラウザの戻るボタンを押すと、再び実行されます。その後、ページにとどまる3回目に戻るボタンを押します。この時点で、テキスト入力に文字を入力すると、選択肢のリストが返されます。次に、1つを選択すると、JavaScriptが値を追加し、要求された情報を含む新しいページを開きます。
2番目の問題は、ドロップダウンからメンバーを選択した後、autocompletechangeが起動する前にテキスト入力フィールドから離れてクリックする必要があることです。選択したときにテキスト入力を終了する前に起動するにはどうすればよいですか?
HTMLファイルは次のとおりです。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function () {$('#theinput').autocomplete({source: 'search.php'});
});
</script>
</head>
<body>
<input type="text" id="theinput" />
<button type="button" onclick="ClearFields();">Clear</button>
<script type="text/javascript">
$(function myFunction () {
$('#theinput').on('autocompletechange change', function () {
location.href = 'dirlist.php?title=' + document.getElementById('theinput').value
}).change();
});
function ClearFields() {document.getElementById("theinput").value = "";}
</script>
</body></html>
あなたはchange
自分で関数を呼び出します、あなたはなしで試しましたか?
$(function myFunction () {
$('#theinput').on('autocompletechange change', function () {
location.href = 'dirlist.php?title=' +
document.getElementById('theinput').value
}); // <-- no .change() right here!
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加