Estoy tratando de crear una lista de botones de opción con etiquetas para que pueda hacer clic en la etiqueta para verificar el elemento de la radio. Lo que tengo funciona bien en Chrome, pero no en IE7. Parece que es correcto el código HTML que sale, pero cuando hago clic en la etiqueta, el botón de opción correspondiente no se selecciona.Lista de botones de radio con 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 -->
¿Cuál es la mejor forma de hacer esto?
No debería considerar envolver las entradas con etiquetas. No es un marcado correcto y puede tener un comportamiento incoherente entre los navegadores. La forma correcta de hacerlo es como lo hace la operación usando el atributo 'for' en la etiqueta – soniiic
Este es el marcado correcto, vea las especificaciones de HTML4: http://www.w3.org/TR/html4/interact/forms .html # edef-LABEL – Doug