[研究][ASP.NET]檢查 TextBox TextMode="MultiLine" 的最大長度限制
2022-07-28
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#
TextBox 雖然有個 MaxLength 屬性,可以限制輸入最大長度,但若是在 TextMode="MultiLine" 時,該屬性是無效的,必須另外想辦法。
********************************************************************************
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication16.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" TextMode="MultiLine" Rows="10" Columns="40" runat="server"></asp:TextBox> <br /> <%--不能只用 ^[\s\S]{0,10}$,會沒計算到換行字元--%> <asp:RegularExpressionValidator runat="server" ControlToValidate="TextBox1" Display="Dynamic" ValidationExpression="^(?:\S|[^\S\r\n]|\r?\n){0,10}$" ForeColor="Red" ErrorMessage="不可超過10字"> </asp:RegularExpressionValidator> <br /> <asp:Button ID="Button1" runat="server" Text="Button" /> </form> </body> </html> |
Default.aspx.cs
using System; using System.Web.UI; namespace WebApplication16 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { UnobtrusiveValidationMode = UnobtrusiveValidationMode.None; } } } |
(下圖)檢查會包含 CR, LF,所以超過10個字,出現訊息。
(完)
相關
[研究][ASP.NET]WebForms UnobtrusiveValidationMode 需要 'jquery' 的 ScriptResourceMapping。請加入 ScriptResourceMapping 命名的 jquery (區分大小寫)。http://shaurong.blogspot.com/2021/07/aspnetwebforms-unobtrusivevalidationmod.html
沒有留言:
張貼留言