php 如何在选中“单选按钮”中的一个选项时禁用其他选项?

vc6uscn9  于 2022-11-28  发布在  PHP
关注(0)|答案(2)|浏览(151)

我正在尝试在选择某个选项后立即禁用其他选项,但使用java-script无法实现此操作。请帮助我。到目前为止,我已经尝试过了

<?php 
    $answer = $exm->getAnswer($number);

    if ($answer) {
        while ($result = $answer->fetch_assoc()) {
?>
            <tr>
                <td>
                 <input id="question_radio" type="radio" name="ans" value="<?php echo $result['id']; ?>"/><?php echo $result['ans']; ?>


<script id="question_radio" type="text/javascript">$(":radio").click(function(){
   var radioName = $(this).attr("ans"); //Get radio name
  $(":radio[name='"+radioName+"']:not(:checked)").attr("disabled", true); //Disable all unchecked radios with the same name
});             

            </script>

                </td>
            </tr>
<?php } } ?>
            <tr>
              <td>
                <input type="submit" name="submit" value="Next Question"/>
                <input type="hidden" name="number" value="<?php echo $number; ?>" />

                </td>
            </tr>
8aqjt8rx

8aqjt8rx1#

您可以获取单选按钮的name属性,即clicked,根据此属性,我们将循环遍历具有该名称的所有单选按钮和未选中的disable单选按钮。
以下是演示代码:
第一个

iyr7buue

iyr7buue2#

下面是纯Javascript的实现

document.querySelectorAll("input[type=radio]").forEach(function (el) {
  el.addEventListener('click', function () {
    //getting name attribute if radio which is clicked
    var name = el.getAttribute('name');
    //loop only through those radio where name is same.
    document.querySelectorAll('input[name="' + name + '"]').forEach(function (el) {
      if (el.matches(":not(:checked)")) {
        el.setAttribute('disabled', 'disabled');
      }
    });
  });
});

相关问题