Я делаю веб-сайт в HTML5 и Javascript, который принимает некоторый текст в textarea
, применяет цезарный шифр 3 и отправляет вывод в другое textarea
.
Однако он не производит никакого вывода. Вот мой код:
<!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, поэтому, пожалуйста, укажите как можно больше ошибок.
РЕДАКТИРОВАТЬ 1: вывод теперь появляется во второй text area
. Однако мне трудно изменить значение x
в ciphertext
. Он печатает одно и то же значение. Смотрите изображение здесь:
Вместо geek во втором textarea
должно быть "iggm". Пожалуйста помоги.
Вам нужно переместить
var x = document.getElementById("myTextArea").value;
внутри функции, так что каждой функции времени называется x присваивается новое значение.
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/
x
. Вы можете помочь мне с этим?
https://jsfiddle.net/vqsnmamy/3/