当输入特定文本时,Javascript输入会运行一个函数



因此,当用户在输入框中输入某个命令时,我想运行一个函数。例如,当用户键入"我想要一个冰淇淋三明治"之类的内容时,它会运行一个函数,将1个冰淇淋三明治添加到他们的库存中。但是,如果他们键入"Gerfabujohn"之类的内容,就会告诉你这不是命令。我已经完成了将三明治添加到库存中的功能,这不是问题所在。这是我的js:

function readCommand() {
let readInput = document.querySelector('#commandInput').value
if (readInput.value = 'I want an ice cream sandwich') {
giveIceCreamSandwich()
} else {
alert(`Not a command`);
}
}

和我的html:

<label for="commandFeild"> Enter Command: </label>
<input type="text" id="commandInput" name="commandFeild"><br><br>
<button class="triggerInput" onclick="readCommand()"> Run Command </button>

在这里,我尝试使用querySelector函数来使用输入框的id查找输入框的值。到目前为止,这部分似乎可以工作。我使用console.log来记录readInput的值,它记录了输入字段中的正确命令。如果语句根本不起作用。显然,无论我输入什么,它都会返回true,并以任何方式运行函数,而忽略了它为true所需满足的条件。

我已经搜索了几个小时的解决方案,我真的很惊讶没有找到答案,因为这似乎是输入语句的主要功能。任何帮助都将不胜感激,谢谢!

两个问题:

  1. =用于赋值而非相等性检查-您希望使用===
  2. 您将输入的value存储到readInput中,因此不需要从中引用value
function readCommand() {
let readInput = document.querySelector('#commandInput').value
//           ↓ no .value, it's already here -----------↑
if (readInput === 'I want an ice cream sandwich') {
//             ↑ === vs =
giveIceCreamSandwich()
} else {
alert(`Not a command`);
}
}

最新更新