2016-09-09 9 views
0

私はうまく動作するパスワードジェネレータを持っています。しかし、少し変更が必要です。下の画像は enter image description herejavacriptを使用して以前の値を消去せずに配列値を追加します

を表示します。「パスワードを生成」ボタンをクリックすると、パスワードが1つ生成されます。 必須:もう一度ボタンをクリックすると、以前のパスワードをクリアせずに、別のパスワードを下に生成する必要があります。ループでいくつかのバリエーションを試しましたが、うまくいきませんでした。静的変数と(感じを与えるために小さな例):

**passGen.js** 

function passGen() { 
var Generator = {}; 
Generator.generateMnemonic = function(length, num_length, mixcase) { 
var ret = ''; 
var vowels = 'aeioe'; 
var consonants = 'bcdfghklmnpqrstvwxzy'; 
if (mixcase) { 
    vowels += vowels.toUpperCase(); 
    consonants += consonants.toUpperCase(); 
} 
vowels = vowels.split(''); 
consonants = consonants.split(''); 

for(var i = 0; i < length/2; i++) { 
    ret += vowels.getRandom(); 
    ret += consonants.getRandom(); 
} 

if (!num_length) return ret; 

var pos = $random(2, length - 2 - num_length); 
return ret.substr(0, pos) + $random(Math.pow(10, num_length - 1), Math.pow(10, num_length) - 1) + ret.substr(pos + num_length); 
    }; 
    var observe = new Observer('#generator-length, #generator-num_length, #generator-mixcase, #generator-amount', function(values) { 
    var length = values[0].toInt(); 
    var num_length = values[1].toInt(); 
    var mixcase = values[2].toInt(); 
    var amount = values[3].toInt(); 

    // Fill passwords in a loop 
    var words = []; 
    for (var i = 0; i < amount; i++) { 
     words.push(Generator.generateMnemonic(length, num_length, mixcase) ); 

    } 

    // Get the output area 
    var output = $('generator-output'); 

    // Output it and highlight it so users will notice the update 
    output.value = words.join("\n"); 
    output.getParent().highlight('#ff8', '#fff'); 


    }, { 
    // periodical: 1000 // interval in ms 
    }); 

    // To fill in the first values 
    observe.fire(); 
    } 
    **Part of Hmtl** 
<script type="text/javascript" src="passGen.js"></script> 
<span>How many passwords:</span> 
    <br> 
    <select name="amount" id="generator-amount"> 
     <option value="1" selected>1</option> 
     <option value="5">5</option> 
     <option value="10">10</option> 
     <option value="50">50</option> 
     <option value="100">100</option> 
    </select> 
</label> 
<input type="button" name="button" value="Generate Password" onclick="passGen();"> 
<label> 
<br> 
    <span>Your passwords:</span> 


+0

から適応あなたwords.pushとwords.join

に、あなたはライブの例を投稿してくださいもらえますか? – Li357

+0

同じようにjsfiddleを作成できますか? – xCodeZone

答えて

0

これらの線に沿って何かを実行してください。あなたのケースでは

function passGen() { 
 
if (typeof passGen.words == 'undefined') { /* It has not been called do initialization*/ 
 
passGen.words = [];}//else previous passwords persist, and you push, onto them. 
 
passGen.words.push("Hello"); 
 
alert(passGen.words); 
 
} 
 
passGen(); 
 
passGen();

var words = []; 

あなたの行を削除し、passGenを付加、場合私の最初のを保ちます。 Static variables in JavaScript

関連する問題