[英]How To allow only numbers in textbox?
我想只輸入數字文本框
這種類型=“數字”不會阻止客戶端的lettrs
@Html.TextBoxFor(m => m.kidsNumber,
new { @class = "textBox1",
@type = "number",
@min = "1",
@max = "30",
@id = "kidsNumber"})
這不會阻止客戶端和服務器端的字母
[Range(1, 30, ErrorMessage = "1-30")]
[RegularExpression("([0-3][0-9])", ErrorMessage = "1-30")]
public string kidsNumber { get; set; }
老實說,不確定我理解你的問題。 類型為“number”的輸入將阻止除支持它的瀏覽器中的數字之外的任何輸入。 並非所有瀏覽器都支持較新的HTML5輸入類型,而在那些不支持的情況下,該字段將回退到將接受任何字符的常規文本輸入。 當然,它並不會阻止人們使用瀏覽器開發人員工具等代碼來使用您的代碼,並將類型從數字更改為文本以允許任何字符。
如果你想要更多的控制,你可以附加一個JavaScript事件處理程序來監聽字段上的keydown之類的事件,然后正則表達式替換任何不是數字的東西,但當然,JavaScript可以被禁用或以其他方式被篡改。
實際上,防止非數字輸入的最佳選擇是將屬性的類型從string
更改為類似int
的類型。 如果模型綁定器無法從發布的數據中解析數字,則該字段將設置為0(作為int的默認值),如果使其為可為空的int( int?
),則為null。 無論哪種方式, Range
屬性的驗證都會啟動並向用戶顯示錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.