我正在以一种形式工作,我有一个数据表和一个打开模态的按钮。我需要将此按钮设置为始终启用;我尝试使用下面的代码但没有成功。
ko.applyBindings({
editarTexto: function(data) {
alert("msg")
},
items: [{}, {}, {}]
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<fieldset data-bind="disable: true">
<table class="table">
<thead>
<tr>
<th class="col-lg-1 ">Texto</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<button type="button" class="form-control" data-bind="click: function() { $root.editarTexto($data) }, disable: false">
<span class="glyphicon glyphicon-pencil" aria-hidden="true" data-bind="disable: false">×</span>
</button>
</td>
</tr>
</tbody>
</table>
</fieldset>
有人能帮帮我吗?
答案 0 :(得分:0)
您已经模糊了标题中的实际问题,并围绕代码进行了探讨。然而,代码本身表明您的问题可以解释为:
如何仅使用
button
属性启用字段集中的某些disabled
?
因此,复制品可以小得多:
<fieldset disabled>
<input> <!-- should be disabled -->
<button>x</button> <!-- should be ENabled, but isn't -->
</fieldset>
答案是:你做不到。唯一的解决方案是不禁用fieldset
并设置除按钮之外的所有后代元素disabled
。
作为参考,您可以从the enable
/disable
binding source file看到,除了在相关元素上设置disabled
属性之外,它不会执行任何操作。
供参考,请参阅有关fieldset
disabled
attribute的MDN条目:
如果设置了此布尔属性,则表示作为其后代的表单控件(第一个可选元素的后代除外)将被禁用,即不可编辑。他们不会收到任何浏览事件,例如鼠标点击或与焦点相关的事件。浏览器通常会将此类控件显示为灰色。
答案 1 :(得分:0)
根据spec,您可以将按钮放在<legend>
内。
<fieldset disabled>
<legend>
Legend
<!-- This is ENABLED -->
<button onclick="console.log('click')">Enabled</button>
</legend>
<input> <!-- this is disabled -->
<button>disabled</button> <!-- this is disabled -->
</fieldset>