脚本显示未定义

Script says Undefined

本文关键字:未定义 显示 脚本      更新时间:2023-09-26

我有这个脚本,它可以让用户输入一个文本,然后它会被翻译成其他东西。只有当单词只有一个字母时才有效。

脚本如下:

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>

如果这个单词不在你的数组中,那么你将得到undefined。如果你输入"Bo",那么你将得到undefined,因为"Bo"不在你的数组中。

您正在使用KeyPress事件调用脚本。如果用户试图输入Bob,则会发生以下情况:

b——b在数组中,没有问题

我不知道你是从哪里抄来的,也不知道你为什么要这样做。

下面是一个更好的实现。不过,下次在依赖别人之前,请先做些调查。

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>