依存関係でチェックボックスを有効にしようとしています。
2 つの入力フィールドの一部が空でない場合、チェックボックスを有効にしたいと思います。
ここに私のJavaScriptコードがあります:
var GoogleContactsViewModel = function() {
var _self = this;
_self.GoogleContacts = ko.observable();
_self.IsEnabled = function (item) {
console.log(item);
return item.GivenName.length || item.FamilyName.length;
};
_self.GetData = function() {
$.ajax({
url: "some url",
method: "POST",
success:function (dataFromServer) {
_self.GoogleContacts(dataFromServer);
}
});
};
_self.GetData();
};
ko.applyBindings(new GoogleContactsViewModel());
ここにhtmlがあります:
<table class="importContacts" data-bind="with: GoogleContacts">
<thead>
<tr>
<th></th>
<th>@CommonResource.LastNameColumn</th>
<th>@CommonResource.NameColumn</th>
<th>E-mail</th>
<th>@CommonResource.MyEmployee</th>
</tr>
</thead>
<tbody data-bind="foreach: contacts">
<tr>
<td>
<input type="checkbox" name="isImport" data-bind="value: FullName, enable: $root.IsEnabled($data)" />
</td>
<td>
<input type="text" name="FamilyName" data-bind="value: FamilyName, valueUpdate: 'afterkeydown'" placeholder="@ContactResource.EnterLastName" />
</td>
<td>
<input type="text" name="GivenName" data-bind="value: GivenName, valueUpdate: 'afterkeydown'" placeholder="@ContactResource.EnterName" />
</td>
<td>
<span data-bind="text: Email"></span>
</td>
<td>
<input type="checkbox" name="MyEmployee" value="" />
</td>
</tr>
</tbody>
</table>
そして、それは初期化に完全に機能します..ここに printscreen があります。ただし、変更しても機能しません。つまり、空のフィールドに入力した後は有効になりません。