无法启用表单元素

时间:2018-09-12 14:20:19

标签: javascript html radio-button

我用HTML制作了一个随机数生成器,它使用户可以生成任何随机数或用户指定范围之间的随机数。页面加载时,元素被禁用,用户需要通过单选按钮选择要使用的生成器。如果用户选择生成任何数字的选项,则会启用“生成”按钮,并且特定的生成器元素保持禁用状态(反之亦然)。

我设法使页面加载时禁用了元素,但是当选中单选按钮时,这些元素仍保持禁用状态。如何获取相应的元素以相应地启用和禁用。

<script>
  document.getElementById('btnAny').disabled = true;
  document.getElementById('txtMin').disabled = true;
  document.getElementById('txtMax').disabled = true;
  document.getElementById('btnSpecific').disabled = true;

  function checked() {
    if (document.getElementById('radioAny').checked == true) {
      document.getElementById('btnAny').disabled = false;
    } else if (document.getElementById('radioSpecific').checked == true) {
      document.getElementById('txtMin').disabled = false;
      document.getElementById('txtMax').disabled = false;
      document.getElementById('btnSpecific').disabled = false;
    }
  }
</script>

check()功能按如下方式在单选按钮中运行(onchange也无效):

<input type="radio" name="radio1" id="radioAny" onclick="checked()">Any Number

1 个答案:

答案 0 :(得分:0)

好的,我设法解决了这个问题,我想我知道为什么。我没有想到的是,checked可能是单选按钮的内置函数的保留字。

例如查看是否已选中单选按钮:

if(document.getElementById('radioAny').checked == true)

因此,当我将函数命名为checked()时,这会引起冲突。我将函数名称更改为checkedd(),保留了所有初始代码,并相应地更改了单选按钮的onclick调用,现在可以正常使用了。