运行IF语句一次
run an IF statement once
我有一个年龄值,我使用它作为输入IF语句的条件。IF语句将随机值填充到字段中(这是一个儿童数学游戏)。填好字段后,用户可以输入他们的答案,然后使用"检查答案"按钮进行检查。一旦'Check Answers'块运行,IF语句再次运行(!),这会导致数学问题发生变化-创建新的随机值。
如何防止IF语句在页面已经加载后运行;导致每次点击"检查答案"按钮时值发生变化?
这是相关的javascript:
$(document).ready(function () {
var getAge = localStorage.getItem('setAge');
var userResponse = new Array();
var answer = new Array();
if (getAge >= 1 && getAge <= 7) {
var operator = new Array('+', '-');
for (var counter = 0; counter <= 2; counter++) {
var index = Math.round(Math.random());
var1 = Math.floor((Math.random() * 5) + 1);
var2 = Math.floor((Math.random() * 10) + 1);
// these add the values to the mathQuestions.aspx
$('#a' + counter).text(var1);
$('#b' + counter).text(operator[index]);
$('#c' + counter).text(var2);
answer[counter] = eval(var1 + operator[index] + var2);
}
// this stores the users answers in userResponse[]
for (var counter = 0; counter <= 2; counter++) {
$('#d' + counter).change(function () {
for (var counter = 0; counter <= 2; counter++) {
userResponse[counter] = $('#d' + counter).val();
// window.alert("userResponse = " + userResponse[counter]);
}
});
}
// Button3 = 'Check Answers'
$('#Button3').click(function () {
for (var counter = 0; counter <= 2; counter++) {
window.alert('userResponse after checking the answers = ' + userResponse[counter]);
if (answer[counter] != userResponse[counter]) {
$('#span' + counter).val(answer[counter]);
}
}
});
});
我仍然在学习所有这些,所以我可以有其他错误,有助于我的问题。据我所知,根本问题是由IF语句再次运行引起的。此外,如果它是相关的,我使用Visual Studio Express 2012 Web使用一些ASP控件(表,按钮,输入等)。
我的猜测是,问题不是在你发布的代码,但在你的HTML;根据你发布的代码,确实包含一个点击事件,但这可能永远不会导致"随机化"部分再次运行。
可能是你的HTML看起来像:<form>
<button>Check answers</button>
</form>
或
<form>
<input type="submit" value="Check answers">
</form>
在表单属性中包含button
或submit
会导致点击按钮时出现"提交操作"。结果是,您首先看到来自click-event的警报消息。接下来,页面被重新加载,整个document.ready()
脚本将再次执行。
一个简单的解决方案可以是:
$('#Button3').click(function (event) {
event.preventDefault()
/* ... */
}
这将阻止表单提交。
http://api.jquery.com/event.preventdefault/相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- If语句只执行一次
- 如何在if循环中只执行一次
- 如何执行脚本一次直到 if 变为假?(节点.JS)
- jQuery 只执行一次 if 语句并解包元素
- 在FOR循环中只运行一次IF
- JavaScript中“if statement”的前半部分只触发一次
- If语句在javascript中只检查变量值一次
- for 循环,包括 if else 语句仅返回最后一次迭代.怎么办?(JavaScript)
- addEventListener “click” 只使用 if 语句运行一次
- 运行IF语句一次
- setInterval中的If语句只工作一次