2016-11-14 19 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 
} 

私はpromptコマンドを使用して、これをテストしてみた、それが動作しますが、私は

document.getElementById 

OR

document.form_name._input_name.value 

を使用して、どちらが動いていないようにみえことを返すために行くとき。

誰も助言できますか?

+0

問題が解決しない場合はどうなりますか?どのように要素を正確に参照していますか? – epascarello

+0

ここでは、私が[Fiddle](https://jsfiddle.net/8628hr2s/1/)で動作させようとしているようなフィドルです。 – ZLackLuster

+0

あなたの問題を示しています。入力値が変更された場合は、ページが読み込まれたときに呼び出すだけです。次に、その中に誤字があります.getElementByIdの 'B'です。 – epascarello

答えて

0

あなたがしなければならないだろうDIVに書き込むために:

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

その後、あなたが書いた関数から文字列を返す必要があります。

今すぐ何も返されません。

だからあなたのコードは次のようになります。私はあなたのnormalphabetはあなたに正確な解を与えることができないかわからないので

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; 
} 

+0

これは基本的に代替暗号に似ています。文字はちょうど異なる順序です。私はテストポイントとして3つだけ残しました。 – ZLackLuster

+0

@ZynVak [OK]を試して、あなたのために動作するかどうかを確認してください。 –

+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

関連する問題