将无效的HTML / HTML5存储在radiobutton的value属性中是否存在JS对象(未进行字符串化)?
举个例子,我使用Knockout JS将radiobutton的值设置为JS对象,如下所示:
HTML:
<!-- ko foreach: $data.vehicles-->
<input type="radio" data-bind="value: $data, checked: $parent.selVehicle" />
<!-- /ko -->
使用Javascript:
function ViewModel() {
this.selVehicle = ko.observable();
this.vehicles = ko.observableArray([new Vehicle('Toyota'), new Vehicle('Honda')]);
}
function Vehicle(name) {
this.name = ko.observable(name);
}
ko.applyBindings(new ViewModel());
当你运行它时,radiobutton的值将是&#34; [Object object]&#34;如果你用控制台检查它。
答案 0 :(得分:0)
它不是关于它是否是有效的Html / Html5属性值,当使用Knockout时,在数据绑定中使用对象是正常的。因此,在您的单选按钮值中绑定到Vehicle功能,如果您想使用selVehicle().name()
获取车辆名称,请参阅foreach
绑定中的documentation。
<强> HTML 强>
<!-- ko foreach: vehicles-->
<input type="radio" data-bind="value: $data, checked: $parent.selectedVehicle" />
<!-- /ko -->
<p data-bind="text: selectedVehicle().name">
</p>
<强>的JavaScript 强>
function ViewModel() {
this.selectedVehicle = ko.observable();
this.vehicles = ko.observableArray([new Vehicle('Toyota'), new Vehicle('Honda')]);
}
function Vehicle(name) {
this.name = ko.observable(name);
}
ko.applyBindings(new ViewModel());
Here's jsfiddle尝试一下。