I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用

I'm trying to make a specific input into a text area call a specific javascript function, but it won't work

本文关键字:调用 输入 javascript 不起作用 成功 函数 区域 文本      更新时间:2023-09-26

因此,为了提供一点细节,我正在尝试制作一个交互式小说游戏或文本冒险。我有一个表格,所有游戏的"命令"都会被输入。我正在处理第一个命令,它是用来调用提示的字符串"start"。只是为了测试代码,如果操作正确,我会提示说"成功!"。然而,当我打开web浏览器进行测试时,在我键入命令之前,就会触发提示。这是代码。

<html>
<head>
<script type="text/javascript" src="scripts/engine.js"></script>
</head>
<body>
<form id="testForm"> <input type="text" name="">
</form>

</body>
</html>

然后是javascript。

var input = document.getElementById("testForm");
if (input = "start") {
    prompt("Success!");
}

试试这个:

<html>
<head>
<script type="text/javascript" src="scripts/engine.js"></script>
</head>
<body>
<form id="testForm"> 
<input type="text" id="myInput">
</form>
<script>
 var myForm = document.getElementById("testForm");// get the form element.
 var myInput = document.getElementById("myInput");// get the input element
 myForm.onsubmit = function() { // when the form is submitted, execute this function.
    if (myInput.value == "start") { // if the value of the input equals 'start', show prompt.
       prompt("Success!");
    }
    return false; //return false, so the form doesn't get submitted.
};
</script>
</body>
</html>

编辑:添加了提交事件处理程序,返回false,因此表单不会被提交。

您需要像这样检查输入的值

var input = document.getElementById("inputID");
var value = input.value;

代码将始终直接运行,因为它没有事件处理程序。你可以添加一个触发的按钮

document.getElementById('button').addEventListener('click', function () {
  var input = document.getElementById("inputID");
  if (input.value === 'start') {
    // Do something
  }
});

或者,如果您喜欢表单提交事件:

document.getElementById('testForm').addEventListener('submit', function () {
  var input = document.getElementById("inputID");
  if (input.value === 'start') {
    // Do something
  }
});