Список радиокнопок с Knockout.js - PullRequest
       17

Список радиокнопок с Knockout.js

7 голосов
/ 02 февраля 2012

Я пытаюсь создать список переключателей с ярлыками, чтобы вы могли щелкнуть ярлык, чтобы проверить элемент переключателя.Что у меня отлично работает в Chrome, но не в IE7.Выдаваемый HTML-код кажется правильным, но когда я нажимаю на ярлык, соответствующий переключатель не выбирается.

JavaScript

function ReuqestType(id, name, billable) {
    this.id = id;
    this.name = name;
    this.billable = billable;
}

function RequestViewModel() {
    var self = this;

    self.availableRequestTypes = [
        new ReuqestType(1, "Travel", true),
        new ReuqestType(2, "Bill Only", false),
        new ReuqestType(3, "Both", true)
    ];

    self.selectedRequestType = ko.observable();
}

HTML

Request Type
<br />
<!-- ko foreach: availableRequestTypes -->
<input type="radio" name="requestType" data-bind="value:id, attr: {'id': 'rt'+ id}" />
<label data-bind="text: name, attr:{'for':'rt'+id}">
</label>
<!-- /ko -->

Какой предпочтительный способ сделать это?

Ответы [ 3 ]

1 голос
/ 31 мая 2012

Похоже, что теперь он работает правильно с последней версией Knockout (2.1.0).

0 голосов
/ 02 февраля 2012

Похоже, ваш HTML в порядке. Это может быть причудой того, что IE7 не может распознавать клики меток, которые были сгенерированы динамически.

Если вы не можете найти правильный ответ, вы всегда можете использовать этот обходной путь :

$('label').on('click', function() {
   var labelId = $(this).attr('for');
   $('#' + labelId ).trigger('click');
});

Я немного изменил его, используя on() вместо click() для учета динамического создания этих меток.

0 голосов
/ 02 февраля 2012

Я незнаком с knockout.js, но обычно вы можете привязать метки к входам, просто намотав метку вокруг поля ввода.

http://jsfiddle.net/QD2qC/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...