运行一次IF语句

时间:2015-06-08 21:47:12

标签: javascript jquery html asp.net conditional-statements

我有一个年龄值,我将其用作输入IF语句的条件。 IF语句将随机值填充到字段中(这是一个孩子的数学游戏)。填写字段后,用户可以输入他们的答案,然后使用“检查答案”检查它们。按钮。一旦检查答案'阻止运行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 for Web使用一些ASP控件(表格,按钮,输入等)。

1 个答案:

答案 0 :(得分:0)

我的猜测是,问题不在您发布的代码中,而是在您的HTML中;根据你发布的代码确实包含了一个click事件,但是这永远不会导致'randomize'部分再次运行。

可能是您的HTML看起来像:

<form>
<button>Check answers</button>
</form>

<form>
<input type="submit" value="Check answers">
</form>

当您点击按钮时,在表单属性中包含buttonsubmit会导致“提交操作”。结果是您首先看到来自click-event的alert-message。接下来重新加载页面,将再次执行整个document.ready()脚本。

一个简单的解决方案可能是:

$('#Button3').click(function (event) {
    event.preventDefault()
    /* ... */
}

这会阻止表单提交。

http://api.jquery.com/event.preventdefault/