2014-09-24 83 views
0

目前我有一個tyoe小數?顯示在我的視圖中。用戶希望能夠輸入N/A或NA,如果它不適用於它們而不是空白。有人能指出我正確的方向來解決這個問題,通過使用jQuery的不顯眼的驗證?MVC 4&自定義jQuery驗證 - 數字驗證忽略值,如「不適用」,「不適用」和「不適用」

在此先感謝

+0

你想在jQuery或服務器端進行驗證嗎? – yoozer8 2014-09-24 17:56:14

+0

道歉沒有添加我正在使用jQuery不顯眼的驗證 – Duffp 2014-09-24 17:57:21

+0

您可以編寫自定義驗證屬性。我從來沒有讓用戶請求更多的工作,但沒有像這樣的好處。 – Jonesopolis 2014-09-24 17:59:39

回答

0

你可以在這裏使用Decimal.TryParse方法試圖解析輸入。給定一個out decimal參數,它會將該值設置爲成功分析的任何值,或者如果解析失敗(返回指示成功或失敗的bool),則保持該值不變。

+1

我認爲OP意味着N/A,NA應該通過驗證以及1.2,但是會失敗的空字符串。 – artm 2014-09-24 17:57:02

1

嘗試添加自定義的驗證,是這樣的:

$.validator.addMethod("NADecimal", function(value, element) { 
    return this.optional(element) || value == 'N/A' || value == 'NA' || parseFloat(value) >0 ; 
}, "Please specify N/A or decimal value"); 

,然後在你的驗證:

$('#myForm').validate({ 

    rules: { 
     "decimalField": { "NADecimal"}, 
     other rules.... 
    }, 

編輯:

這說的,是你的數據類型小數在服務器上側?那麼「N/A」將毫無用處。

+0

如果OP使用jQuery Validate插件,那很好。但是,目前尚不清楚。 – Sparky 2014-09-24 18:10:32

+0

你說得對,我認爲這就是他在評論回覆中的意思。 – artm 2014-09-24 18:11:33

+0

哦,我明白了。我認爲他應該修正他的OP。 – Sparky 2014-09-24 18:13:28