我想在选择一个单选按钮后禁用或隐藏单选按钮 - 这样,当单选按钮链接到价格时,用户无法进行价格比较,并在选中单选按钮后显示价格。我正在使用knockout.js链接所选的单选按钮并显示价格。并且已经在jquery上找到了隐藏未选择的单选按钮的方法,但是我将两者合并在一起时遇到了麻烦。
请参阅以下代码:
<div class="stepTwo">
<div class="middleTitle">
<p>
</p>
</div>
<div data-bind="with: bin2ViewModel">
<div class="divRadiobtns" data-bind="foreach: availableGroups">
<input type="radio" id="makeOpacityHide" class="radioOptions" name="retailerGroup"
data-bind="checked: $parent.selectedGroupOption, value: retailerproductId" /><span
class="radioOptionsA" data-bind="css: { 'radioOptionsA-checked': $parent.selectedGroupOption()==retailerproductId() }"> </span>
</div>
<div data-bind="with: selectedRetailerGroup">
<span class="actualPrice" data-bind="text: price" />
</div>
<div data-bind="with: selectedRetailerGroup">
<input type="hidden" name="retailerProductId" id="retailerProductId" class="retailerProductId"
data-bind="value: retailerproductId" />
</div>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
//jquery
$(document).ready(function () {
$("input[name$='retailerGroup']").click(function () {
var test = $(this).val();
$("input.radioOptionsA").hide();
});
});
//knockout
var Bin2ViewModel = function () {
var self = this;
this.selectedRetailerGroup = ko.observable();
this.selectedGroupOption = ko.observable();
this.selectedGroupOption.subscribe(function (newVal) {
var items = $.grep(self.availableGroups(), function (item) { return item.retailerproductId() == newVal; });
self.selectedRetailerGroup(items[0]);
});
this.selectedGroup = ko.observable();
this.availableGroups = ko.observableArray(
[new RetailerViewModel("21290", "£1.80"),
new RetailerViewModel("302852", "£2.55"),
new RetailerViewModel("422974", "£2.55")
]);
};
var RetailerViewModel = function (retailerproductId, price) {
this.retailerproductId = ko.observable(retailerproductId);
this.price = ko.observable(price);
};
ko.applyBindings({ bin2ViewModel: ko.observable(new Bin2ViewModel()) });
//]]>
</script>
有没有人知道让他们工作的方法,还是有一种很好的方法来隐藏淘汰赛中的单选按钮?
http://jsfiddle.net/afnguyen/MMqzv/3/
我还将jquery附加到jsfiddle中 - 这显示了我想要的所选单选按钮类名称更改,因此不应隐藏:
http://jsfiddle.net/afnguyen/5mmt2/1/
由于
答案 0 :(得分:1)
如果你想拥有一个纯粹的Kncokout解决方案,你可以在enable binding的帮助下达到同样的效果:
因此,您希望在未选择任何选项时启用该按钮,以转换以下绑定:
data-bind="enable: !$parent.selectedGroupOption()"
所以包含您的代码的完整示例:
<input type="radio" id="makeOpacityHide"
class="radioOptions" name="retailerGroup"
data-bind="checked: $parent.selectedGroupOption,
value: retailerproductId,
enable: !$parent.selectedGroupOption()" />
演示JSFiddle。
答案 1 :(得分:0)
试试这个。您可以将css属性“disabled”更改为=“disabled”:
$(".class").attr(
'disabled', 'disabled'
);