Я пытаюсь создать список переключателей с ярлыками, чтобы вы могли щелкнуть метку, чтобы проверить элемент радио. То, что у меня отлично работает в Chrome, но не в IE7. HTML-код, который выталкивает, кажется правильным, но когда я нажимаю на метку, соответствующий переключатель не выбирается.Radio Button List with Knockout.js
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 -->
Что является предпочтительным способом сделать это?
Вы не должны рассматривать обертывание входов с помощью меток. Это неправильная разметка, и вы можете столкнуться с непоследовательным поведением между браузерами. Правильный способ сделать это, как работает op, используя атрибут 'for' на метке – soniiic
Это правильная разметка, см. Спецификации HTML4: http://www.w3.org/TR/html4/interact/forms .html # edef-LABEL – Doug