Я скопировал флажок, используя html и нокаут. Все это отлично работает, за исключением того, что я только что понял, что пользователь не сможет вставить эти флажки (сфокусировав их на вкладке, а затем выбрав их с помощью пробела или ввода)
Каждый флажок сделан из div, и я могу сделать это сфокусированным, добавив tabindex = "0", однако нажатие пробела или ввода не вызывает привязки кликов.
Есть ли способ легко подключить это?
<div class="checkbox" tabindex="0"
data-bind="'css': { 'checked': IsAdmin }, 'click': toggleIsAdmin">
<div class="Icons_checkboxnotticked-png sprite"
data-bind="'css': { 'Icons_checkboxticked-png' : IsAdmin}"></div>
<label>Is Admin?</label>
</div>
Хорошо, я сделал это так,
<div class="checkbox" tabindex="0"
data-bind="'css': { 'checked': IsAdmin },
'click': toggleIsAdmin,
'event': {keypress: toggleIsAdmin}">
<div class="Icons_checkboxnotticked-png sprite"
data-bind="'css': { 'Icons_checkboxticked-png' : IsAdmin}"></div>
<label>Is Admin?</label>
</div>
var vm = function()
{
...
var spaceKey = 32, enterKey = 13;
var toggleIsAdmin = function (data, event)
{
if (!event.keyCode
|| event.keyCode == spaceKey
|| event.keyCode == enterKey)
{
this.IsAdmin(!this.IsAdmin());
}
};
...
}