使用javascript

时间:2019-05-27 17:41:35

标签: javascript

我有一个数据库表,并将其列出到一个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;
}

1 个答案:

答案 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;