我尝试为amount
字段设置验证。我只允许数字字符。我选择使用正则表达式进行验证。
我的模型服务器端:
public class InvoiceLine
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
public double Amount { get; set; }
}
验证我的金额客户端的正则表达式:
invoiceLine.amount.extend({
pattern: {
message: 'warning!',
params: '^[1-9]\d*$'
}
});
然后在我看来:
<input type="text" data-bind="value: amount, valueUpdate: 'afterkeydown', validationOptions: { errorElementClass: 'input-validation-error' }" />
测试:
123
有效确认azerty
无效确定123abc
有效的NOK 在上面的测试中,当我说'有效/无效'时,我的意思是验证成功/失败,当我说'OK / NOK'时,我的意思是这个验证是我预期/不期望的。
所以第三次测试不是我的预期,我不知道为什么ko.validation不会将其标记为无效。似乎只要第一个字符是数字,无论接下来是什么,它都不会被标记为无效。
然后出于测试目的,我改变了我的模型服务器端:
public double Amount
到public string Amount
,结果是:
123
有效确认azerty
无效确定123abc
无效确定 所以似乎string
而不是double
行为更好但是我需要一个double
字段才能获得更多资源!
在为此字段保留double
类型时,知道如何对我的金额进行完全满意的验证吗?
感谢。