0

基本上,我正在尝试创建一个基于文本的冒险游戏。我设法弄清楚如何通过简单的 onclick 按钮在 html 的 textarea 中进行文本输出,但现在我正在尝试做一些新的事情。我在做同样的事情时遇到了麻烦,但输入文本时用户可以在框中写任何内容,然后单击按钮。现在,我正试图让这个程序在它做某事之前检查用户输入与一些标志(在这种情况下,我将我的标志设置为'pizza')。不幸的是,我的代码根本不起作用。我想我不完全理解输入是如何在 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没有被声明。因为您已经obj在上面的 if 语句中定义了它,所以它是该范围独有的。只需obj在 if 块上方定义即可。

--

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. document.getElementByID在第二行使用,这是不正确的大写
  2. 您只是obj有条件地定义,所以 else 子句总是抛出异常。

这是一个演示:http: //jsfiddle.net/uQpp7/1/

于 2012-11-30T17:23:34.820 回答