当事件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解决方案吗?
答案 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>