2016-11-14 9 views
1

Я пытаюсь взять пользовательский ввод из HTML-файла, преобразовать его и вывести его обратно на страницу, используя <input>, а не приглашать.Пользовательский ввод для вывода для функции JS

Вот что у меня есть.

function bhedTester() { 
    alpha = "ABC"; 
    bhed = "JYI"; 

    btext = ""; 
    i = 0; 

    while (i < norm.length) { 
     ind = alphabet.indexOf(norm.charAt(i)); 
     btext = btext + bhed.charAt(ind); 
     i++; 
    } 
    btext 
} 

Я проверил это с помощью командной строки, и он работает, но когда я иду использовать

document.getElementById 

ИЛИ

document.form_name._input_name.value 

, а затем вернуться, что ни один не похоже на работу.

Может ли кто-нибудь посоветовать?

+0

Какая ошибка, когда она не работает? Как вы точно ссылаетесь на элемент? – epascarello

+0

Вот скрипка, в которой я пытался заставить ее работать в [Fiddle] (https://jsfiddle.net/8628hr2s/1/) – ZLackLuster

+0

И если вы указали свою проблему, вы не вызываете ее, когда входное значение измененный, вы просто вызываете его, когда страница загружается. Затем у вас есть опечатка, 'B' в getElementById. – epascarello

ответ

0

Для записи в DIV вам придется сделать:

document.getElementById("yourDiv").innerHTML= bhedTester(); 

И после того, что вам нужно будет возвращать строку из функции, которую вы написали.

Прямо сейчас он ничего не возвращает.

Так что ваш код должен выглядеть следующим образом:

function bhedTester() { 
    alpha = "ABC"; 
    bhed = "JYI"; 

    btext = ""; 
    i = 0; 

    while (i < norm.length) { 
     ind = alphabet.indexOf(norm.charAt(i)); 
     btext = btext + bhed.charAt(ind); 
     i++; 
    } 
    return btext; 
} 

Поскольку я не знаю вашего norm и alphabet не может дать вам точное решение.

+0

В основном это шифр замещения. Письма находятся в другом порядке. Я оставил три в качестве контрольной точки. – ZLackLuster

+0

@ ZynVak Хорошо, попробуйте это и проверьте, не работает ли оно для вас. –

+0

Вот [Fiddle] (https://jsfiddle.net/8628hr2s/1/). Я пытаюсь это сделать. Кажется, не получается вернуться к странице, чтобы появиться. – ZLackLuster

0

Если вы вызываете эту функцию из события DOM, вам нужно вернуть btext.

function bhedTester() { 
    var alpha = "ABC"; 
    var bhed = "JYI"; 

    var btext = ""; 
    var i = 0; 

    while (i < norm.length) { 
    var ind = alphabet.indexOf(norm.charAt(i)); 
    btext = btext + bhed.charAt(ind); 
    i++; 
    } 
    return btext 
} 
0

Вам необходимо прослушать, когда либо текст изменяется на входе, либо при нажатии кнопки. Ваш код запускается только при загрузке страницы. Он не волшебным образом запускается при вводе текста. Вам нужно изменить его для запуска, когда пользователь меняет текст. Поэтому вам нужно использовать addEventListener для привязки события.

//bind the change event 
 
document.getElementById("foo").addEventListener("change", function(){ 
 
    var textbox = this, //reference the textbox 
 
     value = this.value; //get what the user typed 
 
    document.getElementById("bar").innerHTML = value; //set the value 
 
});
<input type="text" id="foo" /> 
 
<div id="bar" />

Теперь, если вы хотите, чтобы запустить его, когда пользователь печатает, чем использовать событие KeyUp.

+0

Отлично! Я не был уверен, что это то, чего я отсутствовал или нет. Теперь имеет смысл. Спасибо. – ZLackLuster

+0

Итак, я добавил это, как вы упомянули, и когда я запустил его, он, кажется, принимает введенное значение, но ничего не отправляется обратно. – ZLackLuster

+0

Итак, вы исправили опечатку, о которой я упоминал с getElementById в вашем исходном коде? – epascarello