如何在JavaScript中使用输入文字的值

时间:2019-09-16 14:16:08

标签: javascript html input

我正在“猪游戏”上构建功能,因此用户可以根据需要通过在输入字段中输入赢值来自己设置赢值。 我需要使用用户在<input type="text">中输入的值,以更改我的JavaScript代码中的行为。

我将输入内容写为:

<div class ="newInputScore">
    <label for="fixGoal">SET THE GOAL :</label><br>
    <input name = "fixGoal" type = "text" id = "fixGoal">
</div>

,我需要在JS代码中使用用户在上述输入中输入的值。到目前为止,我尝试过:

let choosenScore = parseInt(document.getElementById('fixGoal').value);
if (scores[activePlayer] >= 100 || scores[activePlayer] >= choosenScore){...

...但是似乎我的输入返回的值为0,因为使用上述代码,玩家实际上是得分> 0获胜。我控制台log()的choicenScore,它返回NaN,然后​​在下面的行中未定义。我在那里想念什么?预先感谢。

到项目的链接(由于文件在我的计算机上,所以没有显示刻度):https://codepen.io/Peyo5202/pen/dybqyXV

2 个答案:

答案 0 :(得分:0)

请提供更多详细信息,如您所见,您的代码有效...

let choosenScore = parseInt(document.getElementById('fixGoal').value);
<div class ="newInputScore">
    <label for="fixGoal">SET THE GOAL :</label><br>
    <input name = "fixGoal" type = "text" id = "fixGoal">
</div>

<button onclick="console.log(parseInt(document.getElementById('fixGoal').value))">Start</button>

答案 1 :(得分:0)

当您尝试使用javascript比较运算符比较两个不同类型的变量时,存在类型强制(尝试将变量转换为相同类型)-在您的情况下,undefined会转换为{{1} }和

  

...警告:涉及NaN的任何比较都将评估为NaN

请参阅此post,以获取对此的完整说明。最后,false转换为false

建议:

为什么不只将默认值+0用作输入

"0"

或更妙的是,使用三元运算符获取<div class ="newInputScore"> <label for="fixGoal">SET THE GOAL :</label><br> <input name = "fixGoal" type = "text" id = "fixGoal" value = "0"> </div> <button onclick="console.log(parseInt(document.getElementById('fixGoal').value))">Start</button>的值

choosenScore
function choosenScore() {
    let choosenScore = document.getElementById('fixGoal').value;
    return parseInt(choosenScore ? choosenScore : 0);
}