2
我正在使用jQuery不顯眼的驗證版本2.0的MVC3。我也有最新的jquery.validate(v 1.9)。我有此代碼的彈出形式:
$(document).ready(function() {
$('#createForm').submit(function() {
$.validator.unobtrusive.parse($('#createForm'));
(more)
(第三行是必要的,這樣由JavaScript將被驗證添加的表單字段。)
驗證工作正常,除了一個值,如$ 1,000.00輸入到視圖模型中綁定到小數屬性的輸入標記是無效,而1,000.00是有效。很顯然,「$」在驗證器的眼中將值作爲字符串進行轉換。
我已經研究了很多個小時,而且我只發現了另外一個類似的問題(也是在SO上,而且沒有回答)。我無法相信每個MVC3開發者在模態對話中處理貨幣價值時都遇到過這種情況,否則我們現在肯定會有一些解決方案,對吧?
我已通過創建DecimalBinder解決了服務器一側的問題。現在我需要一個客戶端驗證解決方案。我一直在尋找jquery.validate.unobtrusive的API,但我似乎無法找到一個鉤子。我不想修改任何標準的JavaScript庫。
我們使用一個金錢html擴展方法,它在輸入前立即創建一個$符號,並插入一個表示其貨幣值的屬性。在用這個屬性改變元素的時候,如果在輸入中找到它,我們會剝離$符號。我知道這並不能回答你的問題,但我認爲不允許輸入美元符號是標準。 – DMulligan
我有同樣的問題。 到目前爲止,這部分代碼看起來很有前途'$ .validator.methods.number' – Frenchie