【问题标题】:Validate datetime asp net textbox with jquery/javascript使用 jquery/javascript 验证日期时间 asp 网络文本框
【发布时间】:2017-07-27 10:53:21
【问题描述】:

我有这个我希望验证的 asp 网络文本框,以便用户可以输入美国时间或不带冒号,例如:“10:00 PM”或“1230 AM”,因为我后面的代码要求它是有效的日期时间: “yyyy-mm-dd hh:mm” 我需要在客户端对其进行格式化。我该怎么做?

ASPX:

<asp:TextBox Style="float: right;" Width="50" CssClass="TellusTextBox" ClientIDMode="Static" ID="txtArrivalTime" runat="server" />

<asp:TextBox Style="float: right;" Width="50" CssClass="TellusTextBox" ClientIDMode="Static" ID="txtDepartureTime" runat="server" />

JavaScript:

function ValidateDateTime(value) {
    //logic here
}

【问题讨论】:

    标签: javascript c# jquery asp.net datetime


    【解决方案1】:
     <asp:TextBox Style="float: right;" Width="100" CssClass="TellusTextBox" ClientIDMode="Static" ID="txtArrivalTime" runat="server" type="time" placeholder="hrs:mins" value="" pattern="^([0-1]?[0-9]|2[0-4]):([0-5][0-9])(:[0-5][0-9])?$" required="required" />
    

    【讨论】:

      【解决方案2】:

      如果您的代码隐藏要求它是有效的 DateTime,那么也要在服务器端对其进行验证。 Javascript 可以很容易地被关闭/绕过/操纵。提高可用性很好,但你不能相信它。如果您想确定它是正确的值,则在提交表单时,代码隐藏必须再次执行验证。

      ASP.NET Forms 提供了 Validator 控件,它们巧妙地为您提供客户端和服务器端验证,而无需您分别编写和维护这两段代码。

      为此,您可以使用正则表达式验证器,它将使用正则表达式来匹配字符串中的字符。这将匹配您上面显示的两种 12 小时格式的时间,包括最后的 AM/PM:

      <asp:RegularExpressionValidator runat="server" ID="val_reg_ArrivalTime"  ControlToValidate="txtArrivalTime" ValidationExpression="^(0[1-9]|1[0-2])(:){0,1}[0-5][0-9] (AM|PM)$" ErrorMessage="Time must be in this format: hh:mm AM/PM" CssClass="errormessage" SetFocusOnError="true" Display="Dynamic" />
      

      或者,它可能更可靠、更清晰、用户输入更容易/更短,改为接受 24 小时格式(即 hh:mm)。用这个正则表达式代替 24 小时时间:

      ^([0-9]|(0|1)[0-9]|2[0-3]):[0-5][0-9]$
      

      使用这两种方法,无需编写任何自定义 .NET 或 JavaScript 代码 - 验证控件会为您处理。

      在此处了解有关可用验证控件的更多信息:https://msdn.microsoft.com/en-us/library/debza5t0.aspx N.B.供将来参考时,还包括一个“自定义”验证器,用于标准控件不满足您的需要。它为您提供了一个框架,您可以在其中插入自定义 JS 和 C# 代码,但其处理方式与标准控件相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 2013-02-24
        • 2013-05-13
        • 1970-01-01
        相关资源
        最近更新 更多