我在视图中有多个csrf令牌字段,因为我在多个地方发生了发布请求。

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<button type="submit" class="button editItem" data-id="<%= product._id %>">Edit Item <i class="fa fa-arrow-circle-right"></i></button>


在尝试了不同的DOM导航之后,似乎可以使用previousElementSibling访问整个输入,但是无法提取实际值,即:csrf令牌。

const editListingBtn = document.querySelector('.editItem');
if (editListingBtn) {
  editListingBtn.addEventListener('click', e => {
    const csrf = editListingBtn.previousElementSibling.querySelector('[name="_csrf"]').value;


尝试这样做给我一个无法读取的null属性'值'。

最佳答案

应该没有必要使用querySelectorpreviousElementSibling应该给您隐藏的输入,更改为:

const editListingBtn = document.querySelector('.editItem');
if (editListingBtn) {
  editListingBtn.addEventListener('click', e => {
    const csrf = editListingBtn.previousElementSibling.value;

关于javascript - 从previousElementSibling获取隐藏的输入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54311659/

10-12 07:29