如何在HTML模板中正确移除select元素的disabled属性?
解决select元素无法移除disabled属性的问题
先给你两种可行的修复方案:
方案一:使用jQuery的prop方法(推荐,和你的事件绑定风格统一)
既然你已经在用jQuery绑定点击事件,直接用jQuery的prop()方法修改disabled状态,兼容性更稳定:
$("input[name=edit]").on("click", function () { $('#testSelect').prop('disabled', false); });
方案二:修复原生JS代码的潜在问题
如果坚持用原生JS写法,先排查两个关键问题:
- DOM加载顺序问题:确保脚本在页面DOM加载完成后执行,比如把脚本放在
$(document).ready()里,或者放在</body>标签之前:$(document).ready(function() { $("input[name=edit]").on("click", function () { document.getElementById('testSelect').disabled = false; }); }); - 按钮选择器正确性:检查你的按钮是不是
<input>类型(比如<input type="button" name="edit" value="编辑">),如果是<button>标签,$("input[name=edit]")这个选择器找不到元素,事件根本没绑定上,自然不会触发。这种情况要改成$("button[name=edit]")。
快速排查方法
打开浏览器开发者工具(F12),点击按钮后看控制台有没有报错:
- 如果出现
Cannot set properties of null (setting 'disabled'),说明找不到testSelect元素,是DOM加载顺序的问题。 - 如果没有任何报错,说明按钮的点击事件没触发,大概率是选择器写错了。
内容的提问来源于stack exchange,提问作者Lulex97
相关产品推荐
相关产品推荐

