2014-11-21 79 views
0

我有以下函数应该返回给我一个生成的数字的长度,我已在输入字段中输入。这里是例子:http://jsfiddle.net/s91fb8jx/31/Javascript随机数循环不起作用

当我点击按钮没有返回,为什么?

$(document).ready(function(){ 
    var $group = "09", 
     $group_l = $group.length, 
     $size = $('#size').val(); 

    function num_gen(num){ 
     var output = ""; 

     if(size > 0){ 
      while(output.length < num) { 
       output += $group[Math.floor(Math.random() * $group_l)]; 
      } 
      return output; 
     } else { 
      return "" 
     } 
    } 

    $('#btn').on('click', function(){ 
     console.log(num_gen($size)); 
    }); 
}); 
+0

你是一个什么意思?( – 2014-11-21 16:45:52

+0

@ Mohamed-Yousef我已经更新了这个问题的代码,它是为一个数字 – gespinha 2014-11-21 16:47:47

+0

创建一个数字,当你在页面加载时设置'$ size'时, 。变量'$ size'和'size'不一样 – Rhumborl 2014-11-21 16:48:13

回答

0

尝试了这一点

$(document).ready(function(){ 
    var $group = "09", 
     $group_l = $group.length; 

function num_gen(num){ 
    var output = ""; 

    if(num > 0){ 
     while(output.length < num) { 
      output += $group[Math.floor(Math.random() * $group_l)]; 
     } 
     return output; 
    } else { 
     return "" 
    } 
} 

$('#btn').on('click', function(){ 
    console.log(num_gen($('#size').val())); 
}); 

});

+0

谢谢!如果大小为1,如何防止输出数字为0 – gespinha 2014-11-21 17:01:34

+0

你是什么意思?你正在寻找它的代码片段? – vernak2539 2014-11-21 17:03:39

+0

例如:如果输入'1'在这里的输入字段 - http://jsfiddle.net/s91fb8jx/42/ - 输出数字不应该是'0'。我该怎么做?请你用这个更新答案? – gespinha 2014-11-21 17:12:29

0

您有两个错误。首先,您在获取文本字段的值之前获取其值。点击按钮后,您应该得到这个值。其次,if(size > 0){应该是if(num > 0){

$(document).ready(function(){ 
    var $group = "09", 
     $group_l = $group.length; 

    function num_gen(num){ 
     var output = ""; 

     if(num > 0){ 
      while(output.length < num) { 
       output += $group[Math.floor(Math.random() * $group_l)]; 
      } 
      return output; 
     } else { 
      return "" 
     } 
    } 

    $('#btn').on('click', function(){ 
     console.log(num_gen($('#size').val())); // get the value here 
    }); 
});