按 "Enter" 将值打印到控制台日志

Pressing "Enter" to print value to Console Log

当我在页面上的文本框中输入一个值时,即使我在文本框中键入 "yes",控制台日志也会在我的 if 语句中调用 else 条件。我做错了什么?

<!DOCTYPE html>
<html>
    <head>
        <title> Choose your own adventure </title>
        <meta charset= "utf-8">
        <script src= "choose1.js"></script>
        <link type= "text/css" rel= "stylesheet" href= "choose1.css"/>
    </head>
    <body>
        <p> What do you do? </p>
            <input type= "text" id= "decision" name= "decision" onkeydown=  "if(event.keyCode === 13) confirm()" />
        </p>
    </body>
</html>

//choose1.js//
function confirm(){
    var begin= document.getElementById("decision");
    if(begin === "yes") {
        console.log("Success!");
    }
    else {
        console.log("Failure");
    }
}

因为 begin 指向 <input> 元素本身,而不是它的内容。您需要获取值:

var begin= document.getElementById("decision").value;

另外,请注意,已经有一个顶级函数 called confirm,您可能需要考虑重命名您的函数,以免发生冲突。

javascript 代码错误。 begin 对象是输入元素,因此如果您想检查输入中的文本,请调用 begin.value 代码:

function confirm(){
    var begin= document.getElementById("decision");
    if(begin.value == "yes") {
        console.log("Success!");
    }
    else {
        console.log("Failure");
    }
}