我尝试为我的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
无效 OK123abc
有效挪威克朗
在上面的测试中,当我说“有效/无效”时,我的意思是验证成功/失败,当我说“OK/NOK”时,我的意思是这个验证是我期望/不期望的。
所以第三个测试不是我所期望的,我不知道为什么 ko.validation 不将其标记为无效。似乎只要第一个字符是数字,无论接下来是什么,它都不会被标记为无效。
然后出于测试目的,我将模型服务器端从:
public double Amount
到public string Amount
,结果是:
123
有效的azerty
无效 OK123abc
无效 OK
因此,a 的行为似乎string
比 a更好,double
但我需要一个double
字段来表示我的数量,这更有意义!
double
知道如何在为该字段保留类型时对我的金额进行完全满意的验证吗?
谢谢。