名前を持つ配列があり、ユーザーが文字列を入力して名前の候補を入力する入力フィールドがあります.Names Alex、Annaは配列に属し、アレックス 『と『アンナ』.Here」我々は提案をしたい』私のコードです:ユーザー入力を使用して名前の提案を提供する
<!DOCTYPE html>
<html>
<body>
<p class="thick"> Name*: </p> <input type="text" id="fullname" onkeyup="myFunction();">
<p id="test"></p>
<script>
var namesArray= ["Alex","Anna","Eva","George","Jason","John","Lisa","Mary","Michael","Nick","Vicky"];
function myFunction() {
var text = document.getElementById('fullname').value;
var patt1 = new RegExp('^' + text, "i");
var result = [];
for (i = 0; i < namesArray.length; i++) {
if (patt1.test(namesArray[i]))
result.push(namesArray[i]);
}
document.getElementById("test").innerHTML = result.join('<br />');
}
</script>
</body>
</html>
それは罰金、私はスペースを入力し、Delキーを押した場合1 thing.Whenは、最初にロードされて期待して動作します配列全体が名前の提案として表示されています。私はそれを望んでいません。入力フィールドが空でない場合にのみ表示される提案が必要です。ユーザがこれまで入力した内容を削除すると、私はこれをします?
ヌル値で配列を初期化すると、 '.join'を呼び出すときにエラーが発生し、テキストが空のときに異常な結果が生じることがあります。 – ssube