使用if语句设置输入字段的最大值

时间:2012-02-26 17:05:49

标签: jquery input if-statement for-loop raphael

我正在使用Jquery来获取输入值,因为数字是在其中键入的。除了根据输入的数字在raceeljs上使用#canvas_container在div上绘制圆圈。目前我正在尝试设置最大输入值,如if (value <= 50) {,其中value是用户的输入。

我最终想要实现的是,如果用户输入30个,则绘制30个圆圈。如果用户键入60或任何值50,则绘制50个以上的圆圈。创建绘制到canvas_container的最大圆圈数。现在我只是试图在输入任何50及以上的值时没有任何事情发生,但是有些圆圈被绘制但只有少数,我不知道为什么。

http://jsfiddle.net/anderskitson/sHNHe/9/

var paper = new Raphael(document.getElementById('canvas_container'), 500, 500);
$("input").keyup(function() {
    var value = $(this).val();

    if (value <= 50) {

    if (value === "") {
        var circle = paper.circle(110, 50, 30);
        var clear = paper.clear();
    } else {

        for (i = 0; i <= value; i++) {

            var randomNumber1 = Math.floor(Math.random() * 201) - 100;
            var randomNumber2 = Math.floor(Math.random() * 201) - 100;

            var plusOrMinus = Math.random() < 0.5 ? -1 : 100;

            var circle = paper.circle(randomNumber1, randomNumber2, 20);
        }
    }

    }else {
        //this should run if a value of 50 or above is entered
        }

}).keyup();

1 个答案:

答案 0 :(得分:2)

据我所知,你有两个错误:

  1. 您需要在每个keyup上清除您的论文,否则新圈子将被添加到每个keyup上的“旧”圈子中()
  2. 您的处理价值&gt; 50有点复杂
  3. 让我们解决这个问题(简化版):

    var paper = new Raphael(25, 25, 500, 500);
    $("input").keyup(function() {
        var value = parseInt($(this).val());
        paper.clear();
    
        if (value > 50) {
            value = 50;
        }
    
        for (i = 0; i < value; i++) {
    
            var randomNumber1 = 50 + 5 * i;
            var randomNumber2 = 50 + 5 * i;
    
            var circle = paper.circle(randomNumber1, randomNumber2, 20);
        }
    });​
    

    看一下Fiddle,我希望这是你想要达到的目标。