2014-11-21 83 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 
    }); 
});