每次使用Rails的Vanilla Javascript加载部分时查询选择元素

问题描述 投票:0回答:1

我有一个具有radio button s或check box es的部分的内部。我想要做的是获取单击的单选按钮或复选框。现在,最初在页面加载时我可以获取按钮,但是当我转到下一个局部页面时,我将无法获取新按钮。每当在单独的js中单击某个按钮时,如何获得新的部分按钮。如果我将onclick函数与radio buttoncheckbox内联,则可以正确调用该函数,但我想将当前显示的元素保存在单独的js文件中。

我尝试使用window.addEventListener('change')。如果使用此功能,则第一次单击时不会调用该函数,但在随后的单击中会调用该函数多次,即,第二次单击时,函数调用一次,第三次单击时,函数调用两次,依此类推。

// window.addEventListener('change', () => {
window.addEventListener('DOMContentLoaded', () => {
  if (document.querySelectorAll('[name="question[answer_id]"]').length !== 0) {
    document.querySelectorAll('[name="question[answer_id]"]').forEach((questionAnswerButton) => {
      questionAnswerButton.addEventListener('click', (event) => {
        console.log(event);
        fetchCall(event.target.value);
      });
    });
  }
});

radio_button_partial.html.erb

<%= radio_button_tag 'question[answer_id]',
                                  answer.id,
                                  (user_answer == answer.id),
                                  {
                                    class: 'answer_opt',
                                    // onclick: fetchCall("<%= answer.id %>")
                                  } %>

这里,如果我取消注释onclick函数,那么我将获得所需的功能。但是,从单独的js文件中获得当前显示的单选按钮时,该如何更改?

我在一个局部里面有一个单选按钮或复选框。我想要做的是获取单击的单选按钮或复选框。现在最初加载页面时,我可以...

javascript ruby-on-rails erb
1个回答
0
投票

而不是将侦听器直接附加到要使用事件冒泡的元素上:

© www.soinside.com 2019 - 2024. All rights reserved.