ラジオボタンのリストを作成して、ラジオボタンをクリックしてラジオアイテムを確認できるようにしようとしています。私がChromeでうまく動作しますが、IE7ではうまく動作しません。取得したHTMLは正しいと思われますが、ラベルをクリックすると対応するラジオボタンが選択されません。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 -->
これを行うための好ましい方法は何ですか?
入力をラベルで囲むことは考慮しないでください。それは正しいマークアップではなく、ブラウザ間で一貫性のない動作をする可能性があります。ラベルの 'for'属性を使ってopが行っているように正しい方法です。 – soniiic
これは正しいマークアップです.HTML4の仕様を参照してください: http://www.w3.org/TR/html4/interact/forms .html#edef-LABEL – Doug