2013-03-30 41 views
0

我有以下模型屬性

[DisplayName("Salary per year")] 
    public decimal Salary { get; set; } 

而且rasor標記是

@Html.EditorFor(model => model.Salary) 
@Html.ValidationMessageFor(model => model.Salary) 

生成的HTML代碼:

<input class="text-box single-line input-validation-error" data-val="true" data-val-number="The field Salary per year must be a number." data-val-required="The Salary per year field is required." id="Salary" name="Salary" type="text" value=""> 
<span class="field-validation-error" data-valmsg-for="Salary" data-valmsg-replace="true"><span for="Salary" class="" style="">The field Salary per year must be a number.</span></span> 

客戶端驗證只允許用戶輸入數字。但是,用戶希望能夠在號碼前面輸入$(我想知道他們希望能夠輸入「,」來分隔數字)。如何啓用它? (並解析控制器中的字符串decimal?)

現在它顯示「該字段每年的薪水必須是一個數字。」只要我輸入「$」,紅色。

+0

檢查來自答案波紋管的代碼樣本 –

回答

0

你可以做到以下幾點:

1)創建一個功能按鍵和確認按鍵鍵碼是一個數字或逗號:

一)這可能是一個圖書館的使用方法:http://jquerypriceformat.com/

$('#example1').priceFormat(); 

二)創建自定義代碼:

$('#example1').on("keypress", function (e){ 
if(event.keyCode == ',' || event.keyCode == '$' || (event.keyCode => '0' && event.keyCode <= '9'))   { 
    // allow char 
} else { 
e.preventDefault(); 
} 

}); 

℃)這個例子中效果最好:

http://help.dottoro.com/ljlwfxum.php

<head> 
    <script type="text/javascript"> 
     function FilterInput (event) { 
      var chCode = ('charCode' in event) ? event.charCode : event.keyCode; 

       // returns false if a numeric character has been entered 
      return (chCode < 48 /* '0' */ || chCode > 57 /* '9' */); 
     } 
    </script> 
</head> 
<body> 
    The following text field does not accept numeric input: 
    <input type="text" onkeypress="return FilterInput (event)" /> 
</body> 

2)當您提交形成你應該分析從輸入值,並刪除$字符。

var val = $('#example1').val(); 
val = val.slice(2); 
+0

現在它顯示「該領域每年的薪水必須是一個數字。」只要我輸入「$」。 – ca9163d9

+0

@NickW你使用哪個代碼? –

+0

我認爲$不應該由用戶鍵入,只需鍵入一個數字 –

相關問題