[研究][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

沒有留言:
張貼留言