简体   繁体   English

如果未选中无线电,则禁用按钮。 选中时启用

[英]Disable button if radio is unchecked. Enable when checked

I can't seem to get my button to re-enable after it's been disabled.我的按钮在禁用后似乎无法重新启用。 Currently, if nothing is checked and I mouseover it, the button disables.目前,如果没有检查任何内容并且我将鼠标悬停在它上面,则该按钮将被禁用。 It stays enabled if I have something checked, but if I first hover over then button, with nothing checked, I can't get it to re-enable if I check something.如果我检查了某些内容,它会保持启用状态,但是如果我首先将鼠标悬停在然后按钮上,没有选中任何内容,如果我检查某些内容,我将无法重新启用它。

Here's My JS:这是我的JS:

var inputs = document.getElementsByTagName('input');
var letsCookButton = document.querySelector('#letsCook');

letsCookButton.addEventListener('mouseover', checkIfChecked);

function checkIfChecked() {
  letsCookButton.disabled = true;
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].checked) {
      letsCookButton.disabled = false;
    }
  }
}

Here's my HTML:这是我的 HTML:

div class="mainBox" id="box-one">
          <p id="left-box-title">What are you looking for?<span>*</span></p>
          <ul>
            <li><input type="radio" name="food" id="side-food"> Side</li>
            <li><input type="radio" name="food" id="main-food"> Main Dish</li>
            <li><input type="radio" name="food" id="dessert-food"> Dessert</li>
            <li><input type="radio" name="food" id="entire-meal"> Entire Meal</li>
          </ul>
          <button id="letsCook">LET'S COOK!</button>
        </div>

You will have to slightly rethink how you want the UX of your app to work, because disabled elements do not produce events .您将不得不稍微重新考虑您希望应用程序的 UX 如何工作,因为禁用的元素不会产生事件

Since at least one radio button will remain checked after the first click, I would suggest disabling the button from the start and then enabling it on a radio click event.由于在第一次单击后至少有一个单选按钮将保持选中状态,我建议从一开始就禁用该按钮,然后在单选单击事件上启用它。

<div class="mainBox" id="box-one">
  <p id="left-box-title">What are you looking for?<span>*</span></p>
  <ul id="radio-group">
    <li><input type="radio" name="food" id="side-food"> Side</li>
    <li><input type="radio" name="food" id="main-food"> Main Dish</li>
    <li><input type="radio" name="food" id="dessert-food"> Dessert</li>
    <li><input type="radio" name="food" id="entire-meal"> Entire Meal</li>
  </ul>
  <button id="letsCook" disabled>LET'S COOK!</button>
</div>
var inputGroup = document.querySelector('#radio-group');
var letsCookButton = document.querySelector('#letsCook');

inputGroup.addEventListener('click', function () {
    letsCookButton.removeAttribute('disabled')
});

Working example in JS Fiddle: https://jsfiddle.net/Ollie1700/wxn9f63p/4/ JS Fiddle 中的工作示例: https : //jsfiddle.net/Ollie1700/wxn9f63p/4/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在单选按钮之一选中时启用表单字段,在未选中时禁用字段 - To enable form fields when one of the radio button checked & disable fileds when it unchecked 选中/未选中时,Angular2启用/禁用表中的无线电输入 - Angular2 enable/disable radio inputs in table when checked/unchecked 如果复选框被选中/未选中,启用/禁用提交按钮? - Enable/Disable submit button if checkbox is checked/unchecked? 选中/取消选中复选框时启用/禁用下拉菜单 - Enable/disable dropdowns when checkbox checked/unchecked 如果所有复选框都未选中则禁用按钮,如果至少选中一个则启用它 - Disable button if all checkboxes are unchecked and enable it if at least one is checked 如何在语义UI中选中和取消选中复选框时动态地启用和禁用按钮 - how to dynamically enable and disable button when checkbox is checked and unchecked in semantic UI 选中单选按钮时启用表单按钮 - Enable form button when radio button is checked 复选框:当有多个选中的复选框时,启用/禁用未选中的复选框 - Check box: Enable/Disable unchecked boxes when there is a number of checked ones 选中并取消选中表格中的单选按钮 - radio button in a table checked and unchecked 单选按钮从选中状态变为未选中状态时该怎么做? - How to do something when radio button is going from checked to unchecked?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM