TypeError: getElementById is null using JSP

TypeError: getElementById is null using JSP

我想检查用户是否输入了使用拉丁字母的有效英语名称和使用西里尔字母输入的有效俄语名称。

我有以下 edit.jsp 表格:

<body>
    <h1>${faculty.name}</h1>

    <div class="form">
        <form id="edit_faculty" action="controller" method="POST">
            <input type="hidden" name="command" value="editFaculty" /> 
            <div class="field">
                <label for="name_ru"> Name (ru)</label> <input type="text"
                    name="name_ru" value="${requestScope.name_ru}" required />
            </div>
            <div class="field">
                <label for="name_eng"> Name (eng)</label> <input type="text"
                    name="name_eng" value="${requestScope.name_eng}" required />
            </div>
        </form>
    </div>
    <script src="/Project/script/faculty-validation.js"></script>
</body>

faculty-validation.js:

    document.getElementById('name_ru').onkeypress = function(e) {
        return (/[А-Яа-я]/.test(String.fromCharCode(e.charCode)));
    }

    document.getElementById('name_eng').onkeypress = function(e) {
        return (/[a-zA-Z]/.test(String.fromCharCode(e.charCode)));
    }

我点击了这个链接,但主要答案是检查页面中程序员放置 script src tag.

的位置
  1. Error TypeError: document.getElementById(...) is null when add text innerHTML using javascript?

  2. TypeError: document.getElementById() is null

我正在 Mozilla 中对此进行调试并遇到 TypeError。我也试过修改js代码没有成功:

window.onload = function() {
    document.getElementById('name_ru').onkeypress = function(e) {
        return (/[А-Яа-я]/.test(String.fromCharCode(e.charCode)));
    }
}

document.getElementById 使用 id 属性,而不是 name。我没有看到您的输入标签的 id 属性。

替换:

<input type="text" name="name_ru" value="${requestScope.name_ru}" required />

与:

<input type="text" name="name_ru" id="name_ru" value="${requestScope.name_ru}" required />

和:

<input type="text" name="name_eng" value="${requestScope.name_eng}" required />

与:

<input type="text" name="name_eng" id="name_eng" value="${requestScope.name_eng}" required />