javascript启用禁用按钮

时间:2018-02-05 18:51:28

标签: javascript

当事件A发生时,我禁用了一个按钮:

if (document.getElementById('detail_n').checked) {
  chkxp.disabled = true; }

但如果事件B发生,我想重新启用按钮:

if (document.getElementById('detail_y').checked) {
  chkxp.disabled = false; } 

没有重新启用该按钮。我试过了:

chkxp.removeAttribute('disabled');

这也不起作用。

我已经看过其他提供解决方案的页面,而且他们确实是我所拥有的,这对我来说不起作用。这就是为什么我再次提出要求。

唯一有效的方法是重新提交页面。这对用户来说是一个巨大的痛苦,因为有很多东西要填写到这个表单中。

我在Firefox中。任何人都可以给我一个有效的Javascript解决方案吗?

1 个答案:

答案 0 :(得分:0)

似乎可以正常工作,将disabled设置为true,然后删除disabled属性以重新启用buttton。结帐MDN和下面的代码段:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Attribute/disabled

var btn = document.getElementById('btn');
var btn2 = document.getElementById('btn2');

btn2.addEventListener('click', function (e) {
  if (btn.disabled === true) {
    btn.removeAttribute('disabled');
    console.log('Target is enabled');
  }
  else {
    console.log('Target is disabled');
    btn.disabled = true;
  }
})
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <button id="btn">Target</button>
  <button id="btn2">Click here !</button>
</body>
</html>

更新

单选按钮的摘录。 如果我的代码段无法在您的浏览器上运行,请检查您的浏览器设置。

var btn = document.getElementById('btn');
var btn2 = document.getElementById('btn2');
var btn3 = document.getElementById('btn3');

btn2.addEventListener('change',function () {
  if (btn2.checked === true) {
    btn.disabled = true;
  }
});

btn3.addEventListener('change',function () {
  if (btn3.checked === true) {
    btn.removeAttribute("disabled");
  }
});
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <input type="radio" id="btn"><label for="btn">Target</label>
  <input type="radio" name="x" id="btn2"><label for="btn2">Disable target</label>
  <input type="radio" name="x" id="btn3"><label for="btn3">Enable target</label>
</body>
</html>