小编Mat*_*att的帖子

将两个字段与敲除验证进行比较

我有一个表单的viewmodel,我正在尝试使用knockout-validation添加验证.

fromDate: ko.observable(
            moment().subtract('days', 1).startOf('day').format(dateFormat)
          ),
toDate: ko.observable(
            moment().startOf('day').format(dateFormat)
        ),
Run Code Online (Sandbox Code Playgroud)

我需要确保起始日期小于到目前为止.我似乎无法获得任何形式的自定义验证器来获取对第二个observable的引用.我需要的东西是:

toDate: ko.observable(moment().startOf('day').format(dateFormat)).extend({
          validation: {
            validator: function (val, someOtherVal) {
                return moment(val) >= moment(someOtherVal);
            },
            message: 'Must be greater or equal to From Date',
            params: viewModel.fromDate()
          }
        }),
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

更新

我确定我已经尝试过这个,但是将扩展方法移动到onload函数是有效的.

$(function () {
    ko.validation.configure({ decorateElement: true });

    viewModel.toDate.extend({
    validation: {
            validator: function (val, someOtherVal) {
                return moment(val) >= moment(viewModel.fromDate());
            },
            message: 'To date must be greater than from date',
        }
    });

    ko.applyBindings(viewModel);
});
Run Code Online (Sandbox Code Playgroud)

knockout.js knockout-validation

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

knockout-validation ×1

knockout.js ×1