0

基本的に、私はテキストベースのアドベンチャーゲームを作成しようとしています。単純なonclickボタンを使用してhtmlのテキストエリアにテキスト出力を作成する方法を理解できましたが、今は何か新しいことをしようとしています。私は同じことをするのに問題がありますが、ユーザーがボックスに何でも書いてボタンをクリックできる入力テキストに問題があります。現在、このプログラムを作成して、ユーザー入力を何らかのフラグ(この場合は、フラグを「ピザ」に設定)と照合してから、何かを実行しようとしています。残念ながら、私のコードはまったく機能しません。JavaScriptの関数で入力がどのように渡されているのか完全には理解していないと思います。

javascriptの部分

function record(test) {
            var input = document.getElementById('filename');
            fileName = input.value;
            if (fileName == "pizza") {
            var obj=document.getElementById(test);
            obj.value="is this showing up in the textarea???"; 
            }
                        else {obj.value="wrong password!"; }

        }

html部分。

<input name="filename" id="filename" type="text">

<a id="record_button" onclick="record('textarea1');" href="javascript:void(0);" title="Record">Perform Action</a>

<textarea wrap="virtual" cols="73" rows="10" id="textarea1"></textarea>
4

2 に答える 2

2

問題は、elseステートメントを含むこのブロックがobj宣言されていないことです。上記のifステートメントで定義したのでobj、それはそのスコープに排他的です。objifブロックの真上に定義するだけです。

-

function record(test) {
    var input = document.getElementById('filename');
    fileName = input.value;
    var obj=document.getElementById(test);
    if (fileName == "pizza") { 
        obj.value="is this showing up in the textarea???"; 
    }
    else {
        obj.value="wrong password!";
    }
}
于 2012-11-30T17:23:59.693 に答える
1

JSを使用してイベントリスナーを追加します。

document.getElementById('record_button').onclick=function(){
    record('textarea1');
}

また、関数にいくつか問題がありました。ここに修正があります:

function record(test) {
    var input = document.getElementById('filename');
    fileName = input.value;
    var obj = document.getElementById(test);
    if (fileName == "pizza") {
        obj.value = "is this showing up in the textarea???";
    }
    else {
        obj.value = "wrong password!";
    }

}
  1. 2行目で使用document.getElementByIDしていましたが、大文字と小文字が正しくありません
  2. 条件付きで定義しているだけなobjので、else句は常に例外をスローしました。

これがデモンストレーションです:http://jsfiddle.net/uQpp7/1/

于 2012-11-30T17:23:34.820 に答える