我正在“猪游戏”上构建功能,因此用户可以根据需要通过在输入字段中输入赢值来自己设置赢值。
我需要使用用户在<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
答案 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);
}