仅在提交时基于正则表达式进行验证

时间:2014-02-27 11:36:02

标签: c# javascript regex

我使用正则表达式来验证价格,但在我完成插入值之前会出现错误消息。

例如,我是什么哟插入值“10.20”,当我到达“10”。显示消息错误。

在完成插入所有值之前,如何避免显示此消息?

型号:

[Required(ErrorMessage = "Preenchimento obrigatório.")]
[Display(Name = "Valor em €")]
[RegularExpression(@"^(?!0\d|$)\d*(\.\d{1,2})?$", ErrorMessage = "Valor inválido.")]
public decimal Valor { get; set; }

HTML:

<input data-val="true" data-val-number="The field Peso Líquido em kg must be a number." data-val-regex="Valor inválido." data-val-regex-pattern="^(?!0\d|$)\d*(\.\d{1,3})?$" data-val-required="Preenchimento obrigatório." id="PesoLiquido" name="PesoLiquido" placeholder="Ex. 10.200" type="text" value="" class="input-validation-error">

库jquery.validate.unobtrusive.js自动进行验证

由于

1 个答案:

答案 0 :(得分:0)

假设这是一个客户端(即Web浏览器)脚本,使用onChange()或onBlur()之类的东西,它应该很容易验证给定事件并检测布尔结果。但是,如果您正在使用onChange(),则验证将在您开始键入时立即运行,而如果您要使用onBlur(),则验证将仅在焦点移离该输入字段后运行。如果你真的想使用onChange(),那么你需要编写额外的检查以定期轮询内容(可能基于键检测),以便有时间输入完整的值。我不熟悉你使用的语法,所以如果你在框架内编码而不是自己编写,那么我就不能再进行评论了。这是非常标准的东西,通常有这样的错误,它是非常简单的,并且[最终]显而易见!祝你好运。