我有一个数据库表,并将其列出到一个jsp表中。我有作者姓名,职称,日期和数量。我想做一个编辑功能,并显示当前ID及其对应的数据。我已经设法访问了所有数据,但是作者和标题。我使用的是相同的方法,通过javascript访问它们,但是标题和作者出现此错误:
Uncaught ReferenceError: MP is not defined at HTMLButtonElement.onclick
其中“ MP”是作者姓名。我不了解代码如何设法查看当前作者的姓名,但无法在编辑字段中显示该姓名,从而触发错误...我简化了该函数,以查看触发我的错误的原因...
<c:forEach var="book" items="${bookAttribute}">
<tr id="book_${book.id}">
<td><c:out value="${book.author}"/></td>
<button class="button" id="editButton_${book.id}" type="submit" name="editButton" onclick="editBooks(${book.author})">
</button>
function editBooks(author) {
document.getElementById("authorText").value = author;
}
答案 0 :(得分:0)
您至少有一个问题,可能还有两个问题(但是您没有提供足够的信息来确定第二个问题)。
首先,您尝试像这样将字符串传递到editBooks()
函数中:
onclick="editBooks(${book.author})"
对于名为MP
的作者,结果如下所示:
onclick="editBooks(MP)"
如您所见,没有定义为MP
的变量,因此您会看到该错误。
要修正这样的解释周围的报价:
onclick="editBooks('${book.author}')"
第二个问题可能与此代码有关:
document.getElementById("authorText").value = author;
如果ID为authorText
的元素不是HTMLInputElement
,则此代码将无法满足您的期望。只有HTMLInputElement
个具有value属性。像<div>
之类的元素具有textContent
属性。因此,根据要添加作者姓名的元素类型,您可能需要更改以下内容:
document.getElementById("authorText").value = author;
对此:
document.getElementById("authorText").textContent = author;