簡體   English   中英

如何只允許文本框中的數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM