2014-02-27 34 views
0

我使用正則表達式來驗證價格,但在完成插入值之前出現錯誤消息。僅在提交時根據正則表達式進行驗證

例如,我喲插入值「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

由於自動進行

+0

看看[這個答案](http://stackoverflow.com/a/12953104/1836935) –

回答

0

假設這是一個客戶端(即網頁瀏覽器)腳本,使用onChange()或on之類的東西模糊(),應該很容易驗證給定的事件並檢測布爾結果。但是,如果您使用onChange(),驗證將在您開始鍵入時立即運行,而如果您要使用onBlur(),驗證將僅在焦點從該輸入字段移開後運行。如果你真的想使用onChange(),那麼你將需要編寫額外的檢查來週期性地輪詢內容(可能基於鍵盤檢測),以便有時間輸入完整的值。我不熟悉你使用過的語法,所以如果你在框架中編碼而不是自己翻譯,那麼我就不能進一步發表評論。這是非常標準的東西,通常有這樣的錯誤,這是非常簡單的,[最終]顯而易見的!祝你好運。

+0

嗨,謝謝,但這裏的問題是,圖書館jquery.validate.unobtrusive.js自動控制它,所以我需要避免這個自動驗證,直到提交 – Patrick

+0

對不起,錯過了你提到的jQuery的行。以前沒有用過,我的道歉。 – user3360243

+0

嘗試在段落中回答,使其更具可讀性! –