gpt4 book ai didi

knockout-validation - 复选框的敲除验证不显示消息

转载 作者:行者123 更新时间:2023-12-02 04:54:17 25 4
gpt4 key购买 nike

我有这个 jsFiddle http://jsfiddle.net/63qJe/3/有效,但不显示验证方法。

HTML:

<input type="checkbox" data-bind="checked: approveTerms"/>
<label for="algvw">Yes, I agree to the general terms and conditions</label>
<span data-bind="validationMessage: approveTerms"></span>
<button type="button" data-bind="click: stepForward">Commit order</button>

JS:

ko.validation.rules['checkedTerms'] = {
validator: function (value) {
console.log(value);
if (!value)
return false;
return true;
}
};
function ovm() {
var self = this;
self.approveTerms = ko.observable(false).extend({
checkedTerms: { message: 'Approval required' }
});
self.currentStep = ko.observable(1);
self.stepForward = function () {
if (self.currentStep() === 1)
commitOrder(self);
};
}
window.vm = new ovm();
ko.applyBindings(vm);

function commitOrder(vm) {
if (vm.approveTerms())
alert("GO!");
else
alert("Nooooooooo");
}

我对 KO 比较陌生,还在学习中。我在文本字段上还有其他验证器,这些验证器可以正常工作,但这个复选框让我很头疼。

为什么我不能这样做:

self.approveTerms = ko.observable(false).extend({ required: true, message:'approval req.' });

最佳答案

如果您正在创建 custom validator rule你需要打电话

 ko.validation.registerExtenders();

在您的自定义规则之后,为了验证插件注册新的验证器。

演示 JSFiddle .

或者如果你只想检查你的复选框是否被选中,你可以使用 built in 等于验证器:

self.approveTerms = ko.observable(false).extend(
{ equal: { params: true, message:'approval req.' }});

演示 JSFiddle .

关于knockout-validation - 复选框的敲除验证不显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18271812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com