0
我有html窗體正在使用knockout操縱控件的啓用/禁用模式。複選框標籤啓用禁用knockoutjs
我有文本框控件和複選框控件,通過按鈕操作,如果點擊了按鈕,那麼它們可以被編輯,否則它們被禁用。
問題與複選框控件有關,因爲它們的標籤周圍添加了啓用/禁用類,因此儘管已禁用的屬性已從複選框控件中刪除,但該標籤仍具有禁用的屬性並且無法使用。
這是我有:
<table width="95%" data-bind="with: settings">
<tr>
<td style="width:20%" valign="top">q1<br />
<label class="label_yesno">
<input type="checkbox" data-bind="checked: prop_2, enable: editMode" />
</label>
</td>
<td style="width:5%"></td>
<td valign="top">q2<br />
<label class="label_yesno">
<input type="checkbox" data-bind="checked: prop_34, enable: editMode" />
</label>
</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td valign="top">q3
<br />
<label class="label_yesno">
<input type="checkbox" data-bind="checked: prop_52, enable: editMode" />
</label>
</td>
<td></td>
<td valign="top">q4:<br />
<input type="text" style="width: 95%" data-bind="value: prop_12, enable: editMode" />
</td>
</tr>
</table>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
string script = @"
function settingsViewModel() {
return {
prop_2: ko.observable(false),
prop_12: ko.observable(''),
prop_34: ko.observable(false),
prop_52: ko.observable(false)
};
};";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "settingsvm", script, true);
}
</script>
初始加載控件被禁用:
當我點擊編輯按鈕發生這種情況:
正如你所看到的,禁用屬性是從複選框中刪除的,但不是從包裝複選框的標籤中刪除。
任何想法如何解決這個問題?
禁用的類與禁用的屬性不同。使用css綁定來更改類:
謝謝@RoyJ請將其寫爲答案,以便我可以將您的答案標記爲正確。 – Laziale