Entity framework 基于正则表达式的My(ko.)验证不';有些输入不起作用
我尝试为我的Entity framework 基于正则表达式的My(ko.)验证不';有些输入不起作用,entity-framework,knockout.js,ef-code-first,Entity Framework,Knockout.js,Ef Code First,我尝试为我的金额字段设置验证。我只允许使用数字字符。我选择使用正则表达式进行验证 我的模型服务器端: public class InvoiceLine { [Key] public int Id { get; set; } public string Description { get; set; } public double Amount { get; set; } } 用于验证我的金额客户端的正则表达式: invoiceLine.amount.extend
金额
字段设置验证。我只允许使用数字字符。我选择使用正则表达式进行验证
我的模型服务器端:
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
有效NOK123abc
public double Amount
到public string Amount
,结果是:
有效正常123
无效正常azerty
无效OK123abc
字符串
的行为似乎比使用双精度
更好,但我需要一个双精度
字段来表示我的金额,使其更有意义
您知道如何在为该字段保留double
类型时对我的金额进行完全满意的验证吗
谢谢。您能发布发送到服务器的JSon(带字符串和双精度)吗?我认为这种行为与parseFloat('12.3abc')返回12.3的事实有关,因为这(ko.)验证是客户端的,所以没有任何东西发送到服务器。之后,发送到服务器的操作要多得多。当我在浏览器(F12)中检查网络流量时,当我更改文本框中的值(以验证)时,不会发送任何信息,这是正常的。无论如何,谢谢。请尝试使用:
params://^[1-9]\d*$//
因此/
而不是。
我尝试了params://^[1-9]\d*$/
并且遇到了同样的问题:只要第一个字符是数字,其余输入的所有类型字符的验证都会成功(例如:“1hello”验证成功,“hello”验证失败)。