gpt4 book ai didi

javascript - 使用用户输入提供名称建议

转载 作者:行者123 更新时间:2023-12-03 06:53:28 24 4
gpt4 key购买 nike

好的,我们有一个包含名称的数组,以及一个输入字段,用户在其中输入字符串,我们想给他提供名称建议。名称 Alex,Anna 属于该数组,例如,当用户输入“a”时,我们想要建议“Alex”和“Anna”。这是我的代码:

<!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>

它工作正常,期待一件事。第一次加载时,如果我输入 SPACE,然后按 DELETE,整个数组将显示为名称建议。我不希望这样。我希望仅当输入字段非空。当用户删除到目前为止输入的内容时,我不希望出现任何建议。我该怎么做?

最佳答案

虽然还可以进行其他改进,但解决当前问题的方法包括在建议结果之前检查字符串的长度。如果输入为空,则不提供建议。

您可以使用简单的 str.length > 0 检查,例如:

 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 = [];

// Check length
if (text.length > 0) {
for (i = 0; i < namesArray.length; i++) {
if (patt1.test(namesArray[i]))
result.push(namesArray[i]);
}
}

document.getElementById("test").innerHTML = result.join('<br />');
}
<!DOCTYPE html>
<html>

<body>
<p class="thick">Name*:</p>
<input type="text" id="fullname" onkeyup="myFunction();">

<p id="test"></p>
</body>

</html>

关于javascript - 使用用户输入提供名称建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com