【发布时间】:2014-08-21 19:39:00
【问题描述】:
我从几天以来一直在尝试对动态表单进行验证,但我无法得到它。 非常感谢您的帮助。
我需要使用从 Web 服务接收到的信息来扩展 ViewModel 的属性。 我试图个性化映射,但在复选框的情况下,从数组的每个值输入一次。此外,在单选框和复选框的情况下,只需在第一个中应用所需的属性,仅在验证消息中出现一次。
var answerMapping = {
"values": {
create: function(options) {
var answer = ko.observable(options.data);
answer.extend({
required: {
onlyIf: function () { return (options.parent.required() === true); }
}
});
return answer;
}
},
"value": {
create: function(options) {
var answer = ko.observable(options.data);
answer.extend({
required: {
onlyIf: function () { return (options.parent.required() === true); }
}
});
if (options.parent.type() === 3) {
answer.extend({ number: true, min: options.parent.min, max: options.parent.max });
}
if (options.parent.type() === 4) {
answer.extend({ dateISO: true });
}
return answer;
}
}
};
您可以在自定义映射之前在 jsfiddle 中查看示例: jsfiddle
【问题讨论】:
标签: knockout.js knockout-mapping-plugin knockout-validation