Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据其他字段设置验证_C#_Knockout.js - Fatal编程技术网

C# 根据其他字段设置验证

C# 根据其他字段设置验证,c#,knockout.js,C#,Knockout.js,我有一个名为ReceiveTotalAmount的字段,它显示c#model中的值 这就是函数 ko.validation.rules['greaterThan'] = { validator: function (val, other) { if (val != null && val != "" && other != null) { var first = parseInt(val);

我有一个名为ReceiveTotalAmount的字段,它显示c#model中的值

这就是函数

 ko.validation.rules['greaterThan'] = {
    validator: function (val, other) {
        if (val != null && val != "" && other != null) {
            var first = parseInt(val);
            var second = parseInt(ko.unwrap(other));
            if (!isNaN(first) && !isNaN(second)) {
                return first > second;
            }
        }
        return true;
    },
    message: 'Must be greater than or equal to the other value'
};
除了验证之外,一切都正常。如果计数器总数大于回收总数,我无法生成错误消息。。。
谢谢

很多事情可能会出错,但由于您没有“发布完整的示例,只发布代码片段”,您需要检查以下事项:

  • 因为您正在创建一个自定义验证器,所以需要调用
    ko.validation.registerExtenders()在您想第一次使用它之前
  • KO
    .extend({})
    返回扩展的observable,因此需要用结果覆盖现有属性:

    self.CounteredTotalAmount = self.CounteredTotalAmount.extend({
        greaterThan: {
           params: self.ReclaimTotalAmount,
           message: "Car number high must be greater than the low."
        }
    });
    
  • 因为KO验证只覆盖
    已检查
    绑定,以自动显示错误消息。因此,您需要使用
    validationMessage
    绑定来显示错误,因为您在这里使用的是
    text
    绑定:

    <div class="container-left">
         Countered Total:<span data-bind='text: CounteredTotalAmount'></span>
         <span data-bind="validationMessage: CounteredTotalAmount"></span>
    </div>
    
    
    抵销总额:
    

  • 下面是一个使用简化版代码的示例。

    可能会出现多个问题,但由于您没有“发布完整的示例,只发布代码片段”,因此您需要检查以下事项:

  • 因为您正在创建一个自定义验证器,所以需要调用
    ko.validation.registerExtenders()在您想第一次使用它之前
  • KO
    .extend({})
    返回扩展的observable,因此需要用结果覆盖现有属性:

    self.CounteredTotalAmount = self.CounteredTotalAmount.extend({
        greaterThan: {
           params: self.ReclaimTotalAmount,
           message: "Car number high must be greater than the low."
        }
    });
    
  • 因为KO验证只覆盖
    已检查
    绑定,以自动显示错误消息。因此,您需要使用
    validationMessage
    绑定来显示错误,因为您在这里使用的是
    text
    绑定:

    <div class="container-left">
         Countered Total:<span data-bind='text: CounteredTotalAmount'></span>
         <span data-bind="validationMessage: CounteredTotalAmount"></span>
    </div>
    
    
    抵销总额:
    

  • 下面是一个使用简化版代码的示例。

    谢谢-现在可以使用了,我想我的主要问题是我没有ko.validation.registerExtenders();在扩展函数之后调用…谢谢-它现在可以工作了,我想我的主要问题是我没有ko.validation.registerExtenders();在扩展函数之后调用。。。
    self.CounteredTotalAmount = self.CounteredTotalAmount.extend({
        greaterThan: {
           params: self.ReclaimTotalAmount,
           message: "Car number high must be greater than the low."
        }
    });
    
    <div class="container-left">
         Countered Total:<span data-bind='text: CounteredTotalAmount'></span>
         <span data-bind="validationMessage: CounteredTotalAmount"></span>
    </div>