Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脚本显示未定义_Javascript - Fatal编程技术网

Javascript 脚本显示未定义

Javascript 脚本显示未定义,javascript,Javascript,我有一个脚本,可以让用户输入一个文本,然后将其翻译成其他内容。只有当单词只有一个字母时,它才起作用。当有超过1个字母时,表示未定义 以下是脚本: function copyit(theField) { var tempval = eval("document." + theField) tempval.focus() tempval.select() therange = tempval.createTextRange() therange.execCom

我有一个脚本,可以让用户输入一个文本,然后将其翻译成其他内容。只有当单词只有一个字母时,它才起作用。当有超过1个字母时,表示未定义

以下是脚本:

function copyit(theField) {
    var tempval = eval("document." + theField)
    tempval.focus()
    tempval.select()
    therange = tempval.createTextRange()
    therange.execCommand("Copy")
}

function results() {
    var behavior = "form";
    var text = document.csrAlpha.csrresult2.value;
    var ff22 = text.toLowerCase();
    var Words = new Array;
    Words["b"] = "Dadada";
    Words["bob"] = "Robert";
    Words["flower"] = "Banana";
    Words["brad"] = "Chair";
    var trans = "";
    var regExp = /[\!@#$%^&*(),=";:\/]/;
    var stringCheck = regExp.exec(ff22);
    if (!stringCheck) {
        if (ff22.length > 0) {
            for (var i = 0; i < ff22.length; i++) {
                var thisChar = ff22.charAt(i);
                trans += Words[thisChar] + " ";
            }
        } else {
            trans += "Please write something.";
        }
    } else {
        trans += "You entered invalid characters. Remove them and try again.";
    }
    document.csrAlpha.csrresult.value = trans;
}
以及HTML:

<table>
  <tr>
    <td align="center" class="cleanuphtml-1">
      <form name="csrAlpha">
        Please insert your text below:<br />
        <input type="text" class="tb3" name="csrresult2" size="70" maxlength="120" autocomplete="off" onkeydown="results()" onkeyup="results()" onkeypress="return handleEnter(this, event);" />
        <input type="reset" value="Reset" onclick="csrAlpha.csrresult2.focus();" />

        <p>
          <textarea name="csrresult" class="tb7" cols="71" rows="10" value=""></textarea>
        </p>
      </form>
    </td>
  </tr>
</table>

如果该单词不在数组中,则将无法定义。如果您键入Bo,那么您将得到未定义的Bo,因为Bo不在您的数组中

您正在使用按键事件调用脚本。如果用户试图键入Bob,则会发生这种情况

b-b在阵列中,没有问题

bo-bo不在数组中,因此未定义


bob-javascript轰炸了bo,所以你不会走到这一步。

我不知道你从哪里复制的,也不知道你为什么会考虑这样做

这是一个更好的实现。下次在依赖别人之前,请先做些研究

HTML部分

        <table>
          <tr>
            <td align="center" class="cleanuphtml-1">
              <form name="csrAlpha">
                Please insert your text below:<br />
                <input type="text" class="tb3" name="csrresult2" id="csrresult2" size="70" maxlength="120" autocomplete="off" onkeyup="translate()" />
                <input type="reset" value="Reset" onclick="csrAlpha.csrresult2.focus();" />

                <p>
                  <textarea name="csrresult" id="csrresult" class="tb7" cols="71" rows="10" value=""></textarea>
                </p>
              </form>
              </td>
        </tr>
    </table>
而JS部分:

<script>
    var Words = {
        "b" : "Dadada",
        "bob" : "Robert",
        "flower" : "Banana",
        "brad" : "Chair"
    }


    function translate(){
        text = document.getElementById("csrresult2").value.toLowerCase();

        if(typeof Words[text] != "undefined")
            document.getElementById("csrresult").value=Words[text];
        else
            document.getElementById("csrresult").value="Text not found!";
    }
</script>

你能不能不要把你的代码空间增加四倍?对不起,我现在就改。不要小气;这很难读。只是一个提示,var tempval=evaldocument.+theField与var tempval=document[theField]相同。你永远不需要在Javascript中使用eval,除非是在一些非常危险的情况下。这不是你的问题,但你应该不惜一切代价避免eval…几乎总有更好的方法。Johnie是对的,我添加的内容将输出一个信息更丰富的错误,同时确保您的html中有类似于或修改fieldID的内容。嗨,Dany,我已经做了两天的研究,这就是为什么我试图从一个可能比我知道得更多的社区获取信息。我试过你的代码,但一旦我按照你的建议修改了它,脚本就不起作用了。好吧,我给你的只是为了让你开始:我会修改一下我的答案,这样你就有东西可以用了谢谢!你显然可以看出我是个笨蛋:非常感谢你的帮助!我真的很钦佩你们的速度和专业!我很高兴我找到了这个网站!谢谢,那我怎么能推翻它呢?Dany帖子中的if语句会处理它。