在JavaScript中基于用户输入使用条件语句的问题
Issues with using conditionals based on user input in JavaScript
我正在为一些朋友建立一个笑话网站,我想在网站上的一个页面上有一个互动游戏。我已经习惯了C++,所以向javascript的转换是一个有趣的过程。我现在在页面上只有一个段落元素、一个文本输入框和一个按钮。当点击该按钮时,它应该调用playGame((函数。playGame函数查看段落元素("game"(中的内容,然后查看用户输入并生成适当的结果。我只是使用了一组条件词来实现这一点,但由于某种原因,该函数似乎没有改变段落元素,从而使整个事情变得毫无意义,经过了一些修改,但我未能解决这个问题。这是代码:
<html>
<script>
function playGame()
{
test=document.getElementById("game");
var userInput=gameInput=document.getElementById("gameInput").value;
if (test.innerHTML=="Question_1")
{
if (userInput.toLowerCase()=="yes")
{
test.innerHTML="Ending_Result_1";
}
else if (userInput.toLowerCase()=="no")
{
test.innerHTML="Question_2";
}
else
{
test.innerHTML="Ending_Result_2";
}
}
else if (test.innerHTML=="Question_2")
{
if (userInput.toLowerCase()=="yes")
{
test.innerHTML="Positive_Ending";
}
else if (userInput.toLowerCase()=="no")
{
test.innerHTML="Ending_Result_3";
}
else
{
test.innerHTML="Ending_Result_4";
}
else
{
test.innerHTML="Refresh_page_message";
}
}
</script>
<head>
<title>CptTuna's Whip or No Whip</title>
</head>
<body>
<p id="game">"Question_1"</p>
<input id="gameInput" type="text">
<button type="button" onclick="playGame()">Answer</button>
</html>
为了适当起见,我只是把实际的文本内容改成了通用短语。如有任何关于函数执行不正确原因的帮助,我们将不胜感激。
选择一个:
- 在条件中包括引号(
""
(,或者 - 从HTML中删除引号
'Question_1' != '"Question_1"'
请注意,您可以使用单引号和双引号的组合来避免转义
您的代码中刚刚出现了一些小的语法错误。这对我有效:
function playGame() {
test=document.getElementById("game");
var userInput=gameInput=document.getElementById("gameInput").value;
if (test.innerHTML=="'"Question_1'"") {
if (userInput.toLowerCase()=="yes") {
test.innerHTML="Ending_Result_1";
} else if (userInput.toLowerCase()=="no") {
test.innerHTML="'"Question_2'"";
} else {
test.innerHTML="Ending_Result_2";
}
} else if (test.innerHTML=="'"Question_2'"") {
if (userInput.toLowerCase()=="yes") {
test.innerHTML="Positive_Ending";
} else if (userInput.toLowerCase()=="no") {
test.innerHTML="Ending_Result_3";
} else {
test.innerHTML="Ending_Result_4";
}
} else {
test.innerHTML="Refresh_page_message";
}
}
我已经自由地重新格式化了代码,以更好地适应我的风格(不是说你的代码有问题,而是为了能够看到你省略了括号的地方(。基本上,您还没有关闭一个条件语句,在最后一个else
之前也没有关闭整个内部块。这引发了一个错误"没有在调试器中定义playGame">。
另一点,但不是代码不编译的原因,是您没有在条件中包含"
引号作为字符串文字,因为它是innerHTML内容的一部分。您的比较必须如下所示:test.innerHTML=="'"Question_1'""
,其中'
"反斜杠">将单个下一个字符标记为编译器的字符串文字。
相关文章:
- 如何解决取消抖动的用户输入上的竞争条件
- AngularJs:在数字输入字段中设置验证的条件最小值和最大值
- 根据某些条件验证用户输入,而不是将输入输入到数组中,需要最基本的解决方案
- 如何将多个条件添加到表单提交或文本框输入中
- 根据条件使用ng repeat动态显示输入复选框
- Angular2-对有条件创建的输入字段进行表单验证
- 如何正确使用条件执行根据输入绘制圆
- ExtJS有条件地呈现输入字段
- 根据用户输入有条件地显示表单字段
- 在输入后,有条件地应用Angular中的两个类之一
- Jquery XML搜索并显示具有特定用户输入条件的结果
- 在条件jquery上启用按钮/输入区域
- 如果 e.keyCode 是“输入”按钮,并且元素包含其他文本,则验证条件
- 具有单个输入和多种条件的角度滤波器
- 用户单击输入类型复选框时的条件检查
- 根据无线电输入条件禁用和启用按钮提交
- 如何使用Knockout JS数组映射根据输入条件使选择选项绑定默认值
- HTML文本输入条件提交
- JQuery日期输入条件
- 选项卡到输入条件后的下一个选项卡索引