为什么我的javascript / html文档绕过了我检查字符串是否为空的尝试?

时间:2017-07-18 23:36:20

标签: javascript jquery html

编辑:|求助|用户Jaromanda X的解决方案非常完美。谢谢

我的目标是让用户在文本框中输入一些文字并提交。我想检查并查看文本框是否为空,如果是,则应提醒用户需要输入名称。如果它为空,我希望它显示他们输入的文本。

问题在于:每当我点击提交时,它都会获取文本框的值 - 空或不 - 并显示它而不会警告用户空文本字段。我觉得我错过了一些非常基本的东西。谢谢你的帮助!

HTML文件

<body>
    <div id="statusBar">
        <h1 id="playerName"></h1>
        <h2 id="playerHP"></h2>
    </div>

    <div id="gameWindow">
       Player Name: <input id="inputName" type="text" name="Player Name">
       <br>
       <input type="button" value="submit" onclick="getStats()";>
    </div>

    <script src="script.js"></script>
</body>

JS档案

function getStats(){

if(document.getElementById("inputName").len === " "){
    alert('You must enter a name!');
} else {
        var playerHP = 10;
        var playerName = document.getElementById('inputName').value;

        //Display player name on screen
        document.getElementById('playerName').innerHTML = playerName;

        //remove the value placed in the text box
        document.getElementById('inputName').value = "";

        //Display the player's HP
        document.getElementById('playerHP').innerHTML = playerHP;
    }
};

3 个答案:

答案 0 :(得分:0)

应该是:

if (document.getElementById("inputName").value === "") {
  // do something
}

答案 1 :(得分:0)

将您的if语句更改为:

if (document.getElementById("inputName").value.length === 0) {

现在,您正在尝试获取len元素的属性<input>,该元素不存在。您应首先获取输入的,并检查其长度是否为零。因此,.value.length

答案 2 :(得分:0)

你没有使用正确的条件。

替换

document.getElementById("inputName").len

document.getElementById("inputName").value.length === 0