我的 View 中有不止一个 csrf token 字段,因为我有不止一个发生发布请求的地方。
<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 token 。
const editListingBtn = document.querySelector('.editItem');
if (editListingBtn) {
editListingBtn.addEventListener('click', e => {
const csrf = editListingBtn.previousElementSibling.querySelector('[name="_csrf"]').value;
尝试这样做会给我一个无法读取 null 的属性“值”。
最佳答案
应该不需要使用querySelector
,previousElementSibling
应该给你隐藏的输入,改成这样:
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/