我在视图中有多个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属性'值'。
最佳答案
应该没有必要使用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/