javascript - 获取多个单选按钮集的单选按钮值

标签 javascript jquery button

我正在设置一个多项选择问卷,其中的回答由标记为 A、B、C 和 D 的单选按钮处理。

我想通过获取表单 ID 和单击的按钮值来确定每个问题的答案,例如,使用第一组单选按钮的响应可能是 1B,第二组是 2D,依此类推(表单 ID 脚本已经启动并正在运行)。

我需要它来处理具有多组单选按钮的页面

这是 HTML:

    <form class="toeic_pages" id="1">
      <label class="item1">
        <input type="radio" value="A" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item2">
        <input type="radio" value="B" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item3">
        <input type="radio" value="C" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item4">
        <input type="radio" value="D" name="toeic"/>
        <div class="radio-image"></div>
      </label>  
    </form>
    ...                                                                
    <form class="toeic_pages" id="2">
      <label class="item1">
        <input type="radio" value="A" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item2">
        <input type="radio" value="B" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item3">
        <input type="radio" value="C" name="toeic"/>
        <div class="radio-image"></div>
      </label>
      <label class="item4">
        <input type="radio" value="D" name="toeic"/>
        <div class="radio-image"></div>
      </label>  
    </form>

但是,虽然我已经能够使用这个获得选中的单选按钮值:

    jQuery('input[name=toeic]').change(function(){
      var invar = jQuery('input[name=toeic]:checked').val();
      alert(invar);
    });

该脚本仅在点击的第一行按钮内有效。

举例来说,如果在要访问的第一行按钮中,单击按钮 B,则显示 B(正确)。

但是,如果在另一行中单击了按钮 C,则显示 B(不正确).. 并且 B 将继续显示以供所有后续按钮单击。我已经查看了关于此的 SO 页面,但我无法找到解决方案 - 问题似乎是多组单选按钮。

非常感谢任何帮助

最佳答案

你可以这样做:

$(document).ready(function() {
  $("#finish").click(function() {
    var answersList = [];
    //Loop over all questoins
    $(".toeic_pages").each(function() {

      var questionId = $(this).attr("id");
      var answer = $("input[name='toeic']:checked", $(this)).val();

      //if Answer isnt provided do not update the answersList
      if (answer !== undefined) {
        answersList.push({
          question: questionId,
          answer: answer
        });
      }
    });
    console.log(answersList);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="toeic_pages" id="1">
  <label class="item1">
    <input type="radio" value="A" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item2">
    <input type="radio" value="B" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item3">
    <input type="radio" value="C" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item4">
    <input type="radio" value="D" name="toeic" />
    <div class="radio-image"></div>
  </label>
</form>
...
<form class="toeic_pages" id="2">
  <label class="item1">
    <input type="radio" value="A" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item2">
    <input type="radio" value="B" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item3">
    <input type="radio" value="C" name="toeic" />
    <div class="radio-image"></div>
  </label>
  <label class="item4">
    <input type="radio" value="D" name="toeic" />
    <div class="radio-image"></div>
  </label>
</form>

<button id="finish">Get Answers</button>

关于javascript - 获取多个单选按钮集的单选按钮值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121561/

相关文章:

jquery - 如何在 jQuery 中访问模型属性

javascript - 对具有相同 id 的元素的操作

javascript - 无需滚动即可使用 Javascript 显示页面上的所有元素

javascript - event.stopPropagation() 未结束 Javascript 中的冒泡

javascript - 如何在 javascript 中每 5 分钟在数组中调用一个函数

javascript - AJAX错误ERR_INSUFFICIENT_RESOURCES,如何避免

java - 如何从 Android 倒计时器中减去一秒(或更多)?

android - 2个带声音的按钮

javascript - 按住按钮可在 Android PhoneGap 中执行操作

javascript - 错误选项 net::ERR_CONNECTION_REFUSED