【发布时间】:2017-05-02 03:50:38
【问题描述】:
我正在函数内部构造一个 HTML 按钮对象。我想根据此函数参数中的条件启用或禁用按钮。我已将我的问题简化为以下代码:
function test(condition) {
var html = ""
var enableBtn = false;
if (condition == true) {
enableBtn = true;
} else {
enableBtn = false;
}
html += '<button type="button" disabled="' + enableBtn + '"> Click </button></div>';
$("#testLocation").html(html);
}
这里的问题是disabled 标志不适用于true 或false。根据官方 HTML5 规范:
https://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute
https://www.w3.org/TR/html5/infrastructure.html#boolean-attribute,
只有disabled 的有效选项是
<input type="text" disabled />
<input type="text" disabled="" />
<input type="text" disabled="disabled" />
那么我该如何解决这个问题?我也尝试设置disabled = null,但这不起作用。
【问题讨论】:
-
if (condition = true)应该是if (condition == true) -
只需设置 enableBtn = "disabled" 或 enableBtn = ""。
-
如果您的按钮有 id 属性,您可以直接使用 jquery attr('disabled',false) 或将其设置为 true
-
@j08691 感谢您的理解,这是一个错字
-
if(condition) {$el.attr('disabled', 'disabled');} else {$el.removeAttr('disabled')}?
标签: javascript jquery css html