设置可点击的多项选择

时间:2018-05-19 04:48:03

标签: jquery if-statement

我是JQuery的新手,我对我的代码中的事件顺序有疑问。我有一个多选题,下面有3个选项。我希望用户点击正确的答案。我的问题是,如果用户点击正确答案第一个,那么如果他们点击其他2个框,我就不希望发生任何事情。

我该怎么做?我相信我需要一个if语句,但我不确定如何设置它来做我喜欢的事情。任何提示/帮助将不胜感激。

这是在我的脚本部分:



$(".choices:not(#answer)").one("click", function() {
  $(this).css("background-color", "red");
  alert("sorry, that's incorrect");
});

$(".choices[id]").one("click", function() {
  $(this).css("background-color", "grey");
  $("#blank").remove();
  $("#blank2").append($("#answer"));
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="youyaku">
  <table id="regular" align="center">
    <tr>
      <td colspan="3">
        I have to go <span id="blank2"></span><span id="blank">____</span> the hospital.
      </td>
    </tr>
    <tr>
      <td class="choices">
        <span>for</span>
      </td>
      <td id="answer" class="choices">
        <span>to</span>
      </td>
      <td class="choices">
        <span>at</span>
      </td>
    </tr>
  </table>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

使用单选按钮作为通常用于此目的的控件 您的代码应如下所示。 考虑到你需要在选择一个按钮后禁用所有其他按钮。

var radios = [].slice.call(document.querySelectorAll('input[name=level]'));

radios.forEach(function(radio) {
    radio.addEventListener('change', function() { 
        radios.forEach(function(r) {
            r.disabled = r !== radio;
        });
    });
});