编辑:|求助|用户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;
}
};
答案 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
。