2017-11-12 4 views
1

私はHTML5とJavascriptでウェブサイトを作っています。textareaで何らかのプレーンテキストを取り込み、3のシーザー暗号を適用し、別のtextareaに出力します。HTMLとJavascriptのシーザー暗号Webサイトは出力を生成しません

ただし、出力は生成されません。 「シーザー暗号」 をクリックしたときに

enter image description here は、しかし、何も2番目のテキストボックスに表示されなかっ:

<!DOCTYPE html> 
    <html> 
    <body> 
    <script language="JavaScript"> 
    var x = document.getElementById("myTextArea").value; 

    function c_ciph(){ 
     for (var i = 0, len = x.length; i < len; i++) { 
     if (x[i] == x[i].toUpperCase()){ 
      var a = x[i].charCodeAt(0); 
      var e = ((a - 65 + 3) % 26) + 97; 
      var c = String.fromCharCode(e); 
     } 
     else if (x[i] == x[i].toLowerCase()){ 
      var a = x[i].charCodeAt(0); 
      var e = ((a - 97 + 3) % 26) + 97; 
      var c = String.fromCharCode(e); 
     } 
     } 
     document.getElementById('result').value = x; 
    } 


    </script> 
    <div> 
     <h1>Cipher and Leetspeak Converter</h1> 
     <p>Welcome to the cipher and leetspeak converter.</p> 
    </div> 

    <div> 
     <textarea id = "myTextArea" rows = "6" cols = "80"> 
     </textarea> 
     <p>Convert to:</p> 
    </div> 

    <div> 
    <form> 
     <input type="radio" name="codingStyle" value="caesar_cipher" onclick="c_ciph();"> Caesar Cipher <br> 
     <input type="radio" name="codingStyle" value="vigenere_cipher"> Vigenere Cipher<br> 
     <input type="radio" name="codingStyle" value="leetspeak"> Leetspeak 
    </form> 
    </div> 

    <div> 
     <button type="button">Convert</button> 
    </div> 

    <div> 
     <textarea id = "result" rows = "6" cols = "80"> 
     </textarea> 
    </div> 

    </body> 
    </html> 

これはサイトです: はここに私のコードです。

私はJavascriptとHTMLの新機能ですので、できるだけ多くのエラーを指摘してください。

EDIT 1:出力は2番目のtext areaに表示されます。しかし、xの値をciphertextに変更するのに問題があります。同じ値が出力されます。 enter image description here

第2のtextareaのオタクの代わりに、「iggm」が必要です。 助けてください。

+0

ブラウザの作業例は、既にデベロッパーコンソールであなたにエラーを報告しています。 – Pointy

+0

@pointyどのエラー? – toyotasupra

答えて

1

あなたは、各時間関数は、xと呼ばれる新しい値を割り当てられているように、関数の内部

var x = document.getElementById("myTextArea").value; 

を移動する必要があります。

function c_ciph(){ 
     var x = document.getElementById("myTextArea").value; 

    for (var i = 0, len = x.length; i < len; i++) { 
    if (x[i] == x[i].toUpperCase()){ 
     var a = x[i].charCodeAt(0); 
     var e = ((a - 65 + 3) % 26) + 97; 
     var c = String.fromCharCode(e); 
    } 
    else if (x[i] == x[i].toLowerCase()){ 
     var a = x[i].charCodeAt(0); 
     var e = ((a - 97 + 3) % 26) + 97; 
     var c = String.fromCharCode(e); 
    } 
    } 
    document.getElementById('result').value = x; 
} 

ここ https://jsfiddle.net/vqsnmamy/2/

+0

ありがとうございました。しかし、暗号文の代わりに同じことを今すぐ印刷します。私は暗号アルゴリズムが正しいことを知っている、それを修正する必要はありませんが、 'x'の値に問題があります。あなたはそれで私を助けることができますか? – toyotasupra

+0

あなたは結果を保存せず、出力にのみ "x"を印刷します。これはあなたが探しているものかもしれません: 'https:// jsfiddle.net/vqsnmamy/3 /' –

+0

はい、私はそれを指摘しました。 – toyotasupra

関連する問題