0

几天来,我一直在努力让它发挥作用。我有基本代码,但每次我尝试添加最后一个要求时,我都会破坏代码。我确定我错过了很多,这就是为什么我不能添加带有显示数量的警报框。因此,它会询问用户姓名、他们想查看的次数和警告框,如果他们输入无效答案,他们会看到警告框告诉他们输入正确的值。我坚持的最后一部分是用户输入的值决定了有多少警报框显示他们的名字,并且框需要说明它是哪个框。所以,<Name>这是 的时间<count of displays><total time to display>。我正在尝试使用限制和 FOR 不同的东西,用户 Y 变量是限制器。任何线索或帮助将不胜感激。

<!DOCTYPE html>
<html>
<body>

<p>Please enter your name followed by how many times you would like to be alerted.</p>

<button onclick="myFunction()">Start</button>



<script>


function myFunction() {
    var x;

    var name = prompt("Please enter your name", "");
    if (name == null || name == "") {
        alert("Please input a name.");

        return false;
    }
    else {
        var y;
        var y = prompt("Please enter a number between 1-10");
        if (y == null || y == "") {
            alert("Please input a number for the times to alert the name.");
            return false;
        }
        if (y > 10) {
            alert("Please input a number between 1 and 10.")
            var y = prompt("Please enter a number between 1-10");

        }
        if (y <= 0) {
            alert("Please input a number great than zero.")
            var y = prompt("Please enter a number between 1-10");

        }
    }
}

</script>

</body>
</html>
4

2 回答 2

1

没有太大的改变。

尝试:

function myFunction() {
    var x, y;

    var name = prompt("Please enter your name", "");
    if (name == null || name == "") {
        alert("Please input a name.");

        return false;
    }
    else {
        var y = prompt("Please enter a number between 1-10");
        if (y == null || y == "") {
            alert("Please input a number for the times to alert the name.");
            return false;
        }
        while (y >= 10 || y <= 0) {
            alert("Please input a number between 1 and 10.")
            var y = prompt("Please enter a number between 1-10");
            if (y == null || y == "") {
                alert("Please input a number for the times to alert the name.");
                return false;
            }
        }
    }
    for(var i = 0; i < y; i++) {
        alert("this is an alert");
    }
}

这会在循环中检查 1 <= y <= 10。

http://jsfiddle.net/tMXNM/2/

于 2012-12-26T15:01:06.633 回答
1

这消除了您的大部分alert陈述并一直保持prompt直到提交有效值。

function myFunction() {
    var x,y,name = "";
    while(name.length < 1) {
        name = prompt("Please enter your name", "");
    }

    while(!((y > 0) && (y <11))) {
       y = prompt("Please enter a number between 1-10");
    }

    for(x = 0; x < y; x++) {
       alert(name);
    }
}

工作示例:

http://jsfiddle.net/DwxmT/

于 2012-12-26T15:07:34.780 回答