【问题标题】:Checking the text input before triggering event in javascript在javascript中触发事件之前检查文本输入
【发布时间】:2012-12-01 01:23:59
【问题描述】:

基本上,我正在尝试创建一个基于文本的冒险游戏。我设法弄清楚如何通过简单的 onclick 按钮在 html 的 textarea 中进行文本输出,但现在我正在尝试做一些新的事情。我在做同样的事情时遇到了麻烦,但输入文本时用户可以在框中写任何内容,然后单击按钮。现在,我正试图让这个程序在它做某事之前检查用户输入与某个标志(在这种情况下,我将我的标志设置为“披萨”)。不幸的是,我的代码根本不起作用。我想我不完全理解输入是如何在 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>

【问题讨论】:

  • 也许这只是您帖子中的一个错字,但document.getElementByID('filename'); 应该是document.getElementById('filename');
  • if (fileName == pizza) 您是否在函数外声明了比萨饼,或者您正在尝试进行字符串比较?
  • 哦,我的意思是把披萨做成一个字符串。 “比萨”。我认为这可能是问题所在。

标签: javascript javascript-events


【解决方案1】:

问题是你的 else 语句的这个块,obj 没有声明。因为您在上面的 if 语句中定义了 obj,所以它是该范围独有的。只需在 if 块的正上方定义 obj

--

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

【讨论】:

  • 谢谢!现在可以了!对不起,有人在你之前回答了这个问题。 =(
【解决方案2】:

使用 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多