Knockout.js 取消单选按钮单击绑定不工作

Knockout.js 取消单选按钮单击绑定不工作,knockout.js,Knockout.js,我的HTML代码是: <div class="radio i-checks" data-bind="click: fixPriceChecked"><label> <input type="radio" value="fixedPrice" name="bidingAllowed"> <i></i> Fixed Price </label></div> <div class="radio i-checks"

我的HTML代码是:

<div class="radio i-checks" data-bind="click: fixPriceChecked"><label> <input type="radio" value="fixedPrice" name="bidingAllowed"> <i></i> Fixed Price </label></div>
<div class="radio i-checks" data-bind="click:allowBidingChecked"><label> <input type="radio" value="allowBiding" name="bidingAllowed"> <i></i> Allow Biding</label></div>
单击数据绑定不起作用。
fixPriceChecked
功能不会监听单击。我做错了什么

更新:

<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: fixedPrice " name="1" value="fixedPrice" />Fixed Price</label>
</div>
<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: allowBiding " name="1" value="allowBiding" />Allow Biding</label>
</div>
ko.bindingHandlers.iChecked = {
    init: function (element, valueAccessor) {
        $(element).iCheck({
            radioClass: "iradio_square-green",
        });
        $(element).on('ifChanged', function () {
            var observable = valueAccessor();
            observable($(element)[0].checked);
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.unwrap(valueAccessor());
        if (value) {
            $(element).iCheck('check');
        } else {
            $(element).iCheck('uncheck');
        }
    }
};

var ViewModel = function () {
    var self = this;
    self.fixedPrice = ko.observable(true);
    self.allowBiding = ko.observable(false);

};
ko.applyBindings(new ViewModel());
我将我的HTML更新为:

<div data-bind="click:fixPriceChecked">click here</div>
<div class="radio i-checks" data-bind="click:fixPriceChecked"><label> <input type="radio" value="fixedPrice" name="bidingAllowed"> <i></i> Fixed Price </label></div>
<div class="radio i-checks" data-bind="click:allowBidingChecked"><label> <input type="radio" value="allowBiding" name="bidingAllowed"> <i></i> Allow Biding</label></div>
点击这里
固定价格
允许投标
现在,当我点击
点击这里
时,它工作正常。这意味着单选按钮有一些问题。单击不仅仅适用于单选按钮。

您需要“选中”绑定;-)

查看“添加单选按钮示例”中的页面: 您需要“选中”绑定;-)

查看“添加单选按钮示例”中的页面: 您需要“选中”绑定;-)

查看“添加单选按钮示例”中的页面: 您需要“选中”绑定;-)

查看“添加单选按钮示例”中的页面:

Html元素输入是一个自动关闭的标记
您可以更正它

默认情况下,您的代码工作正常

我认为点击div不是个好主意,因为我们已经选中了单选按钮的
选项

更新:您需要使用自定义绑定处理程序来集成
iCheck
插件

查看:

<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: fixedPrice " name="1" value="fixedPrice" />Fixed Price</label>
</div>
<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: allowBiding " name="1" value="allowBiding" />Allow Biding</label>
</div>
ko.bindingHandlers.iChecked = {
    init: function (element, valueAccessor) {
        $(element).iCheck({
            radioClass: "iradio_square-green",
        });
        $(element).on('ifChanged', function () {
            var observable = valueAccessor();
            observable($(element)[0].checked);
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.unwrap(valueAccessor());
        if (value) {
            $(element).iCheck('check');
        } else {
            $(element).iCheck('uncheck');
        }
    }
};

var ViewModel = function () {
    var self = this;
    self.fixedPrice = ko.observable(true);
    self.allowBiding = ko.observable(false);

};
ko.applyBindings(new ViewModel());
选中单选按钮的工作样本绑定


以防万一,如果您正在查找一个选定的值,请尝试

Html元素输入是一个自动关闭标记
,您可以更正它

默认情况下,您的代码工作正常

我认为点击div不是个好主意,因为我们已经选中了单选按钮的
选项

更新:您需要使用自定义绑定处理程序来集成
iCheck
插件

查看:

<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: fixedPrice " name="1" value="fixedPrice" />Fixed Price</label>
</div>
<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: allowBiding " name="1" value="allowBiding" />Allow Biding</label>
</div>
ko.bindingHandlers.iChecked = {
    init: function (element, valueAccessor) {
        $(element).iCheck({
            radioClass: "iradio_square-green",
        });
        $(element).on('ifChanged', function () {
            var observable = valueAccessor();
            observable($(element)[0].checked);
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.unwrap(valueAccessor());
        if (value) {
            $(element).iCheck('check');
        } else {
            $(element).iCheck('uncheck');
        }
    }
};

var ViewModel = function () {
    var self = this;
    self.fixedPrice = ko.observable(true);
    self.allowBiding = ko.observable(false);

};
ko.applyBindings(new ViewModel());
选中单选按钮的工作样本绑定


以防万一,如果您正在查找一个选定的值,请尝试

Html元素输入是一个自动关闭标记
,您可以更正它

默认情况下,您的代码工作正常

我认为点击div不是个好主意,因为我们已经选中了单选按钮的
选项

更新:您需要使用自定义绑定处理程序来集成
iCheck
插件

查看:

<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: fixedPrice " name="1" value="fixedPrice" />Fixed Price</label>
</div>
<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: allowBiding " name="1" value="allowBiding" />Allow Biding</label>
</div>
ko.bindingHandlers.iChecked = {
    init: function (element, valueAccessor) {
        $(element).iCheck({
            radioClass: "iradio_square-green",
        });
        $(element).on('ifChanged', function () {
            var observable = valueAccessor();
            observable($(element)[0].checked);
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.unwrap(valueAccessor());
        if (value) {
            $(element).iCheck('check');
        } else {
            $(element).iCheck('uncheck');
        }
    }
};

var ViewModel = function () {
    var self = this;
    self.fixedPrice = ko.observable(true);
    self.allowBiding = ko.observable(false);

};
ko.applyBindings(new ViewModel());
选中单选按钮的工作样本绑定


以防万一,如果您正在查找一个选定的值,请尝试

Html元素输入是一个自动关闭标记
,您可以更正它

默认情况下,您的代码工作正常

我认为点击div不是个好主意,因为我们已经选中了单选按钮的
选项

更新:您需要使用自定义绑定处理程序来集成
iCheck
插件

查看:

<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: fixedPrice " name="1" value="fixedPrice" />Fixed Price</label>
</div>
<div>
    <label>
        <input class="radio i-checks" type="radio" data-bind="iChecked: allowBiding " name="1" value="allowBiding" />Allow Biding</label>
</div>
ko.bindingHandlers.iChecked = {
    init: function (element, valueAccessor) {
        $(element).iCheck({
            radioClass: "iradio_square-green",
        });
        $(element).on('ifChanged', function () {
            var observable = valueAccessor();
            observable($(element)[0].checked);
        });
    },
    update: function (element, valueAccessor) {
        var value = ko.unwrap(valueAccessor());
        if (value) {
            $(element).iCheck('check');
        } else {
            $(element).iCheck('uncheck');
        }
    }
};

var ViewModel = function () {
    var self = this;
    self.fixedPrice = ko.observable(true);
    self.allowBiding = ko.observable(false);

};
ko.applyBindings(new ViewModel());
选中单选按钮的工作样本绑定




以防万一,如果您正在查找选定的值,请尝试

您在浏览器中是否收到任何控制台错误?不,我没有收到任何错误它工作正常请检查此处。@supercool它不适用于我。我已经更新了问题。您在浏览器中有任何控制台错误吗?没有,我没有收到任何错误。它工作正常。请检查这里。@supercool它不适用于我。我已经更新了问题。您在浏览器中有任何控制台错误吗?没有,我没有收到任何错误。它工作正常。请检查这里。@supercool它不适用于我。我已经更新了问题。您在浏览器中有任何控制台错误吗?没有,我没有收到任何错误。它工作正常。请检查这里。@supercool它不适用于我。我已经更新了任务“不工作”。我在viewModel
self.isFixPriceChecked=ko.observable(“fixedPrice”)中添加了这一行
并将HTML更新为:
固定价格
但没有成功数据绑定始终在同一属性上吗?您必须始终引用相同的属性。其中的值是从值属性写入的。樱桃树坏了。我在viewModel
self.isFixPriceChecked=ko.observable(“fixedPrice”)中添加了这一行
并将HTML更新为:
固定价格
但没有成功数据绑定始终在同一属性上吗?您必须始终引用相同的属性。其中的值是从值属性写入的。樱桃树坏了。我在viewModel
self.isFixPriceChecked=ko.observable(“fixedPrice”)中添加了这一行
并将HTML更新为:
固定价格
但没有成功数据绑定始终在同一属性上吗?您必须始终引用相同的属性。其中的值是从值属性写入的。樱桃树坏了。我在viewModel
self.isFixPriceChecked=ko.observable(“fixedPrice”)中添加了这一行
并将HTML更新为:
固定价格
但没有成功数据绑定始终在同一属性上吗?您必须始终引用相同的属性。其中的值是从值属性写入的。我已经复制并粘贴了您的代码,但它不起作用。在发布问题之前,我已经尝试过检查绑定。你们能这样做吗?这是一种标准的方式。让我知道Checked绑定应该与html元素中的值匹配。试着用叉子叉我的小提琴并显示错误&让我们知道任何控制台错误控制台中没有错误。一切都很好<代码>所选值
值根据所选单选按钮进行更改。下一步怎么办?就是这样了@Irfanwat。现在,选中的绑定按预期工作。你还期待什么吗?我已经复制并粘贴了你的代码,但它不起作用。在发布问题之前,我已经尝试过检查绑定。你们能这样做吗?这是一种标准的方式。让我知道Checked绑定应该与html元素中的值匹配。试着用叉子叉我的小提琴