【问题标题】:javascript enable disabled button [duplicate]javascript启用禁用按钮[重复]
【发布时间】:2018-07-15 17:15:34
【问题描述】:

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

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

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

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

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

chkxp.removeAttribute('disabled');

那也没用。

我查看了提供解决方案的其他页面,它们正是我已经拥有的,但对我不起作用。这就是我再次询问的原因。

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

我在火狐。谁能给我一个可行的Javascript解决方案?

【问题讨论】:

  • 我看过了,但没有发现任何有用的东西。

标签: javascript


【解决方案1】:

将 disabled 设置为 true 然后删除 disabled 属性以重新启用按钮似乎可以正常工作。结帐 MDN nd sn-p 下面: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>

更新

单选按钮的片段。 如果我的 sn-p 在您的浏览器上不起作用,请检查您的浏览器设置。

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>

【讨论】:

  • 对我不起作用。
  • 也许你的代码中的其他东西搞砸了?你能把它贴出来吗?我的答案中的 sn-p 对你有用吗?
  • 这不起作用。我有一个单选按钮,而不是常规按钮。否则看起来是一样的。我在我的问题中包含了相关代码。你在找什么?你想要 HTML 吗?
  • 您的 if 语句是否在事件侦听器中?如果不听事件,您将无法响应用户操作。我用单选按钮的 sn-p 编辑我的答案,请检查一下。
  • 我正在单选按钮内设置一个 onchange。如果用户选择另一个按钮,它也有一个 onchange,所以程序会捕获它。我还使用禁用更改颜色;并在我将禁用设置为 false 时将其更改回来。颜色变化正在起作用。这是调用代码: 隐藏
猜你喜欢
  • 1970-01-01
  • 2014-09-27
  • 2015-06-20
  • 2016-08-16
  • 2018-09-10
  • 2019-03-19
  • 1970-01-01
  • 2015-08-06
相关资源
最近更新 更多