繁体   English   中英

日期验证

[英]date validation

我们如何在asp.net上使用数据验证? 日期不能插入大于当前日期。

使用CompareValidator 大多数人使用它来比较输入到两个文本框中的两个值,但您也可以使用它来比较一个输入值和设置值,如您的情况。

  <asp:CompareValidator id="Compare1" 
       ControlToValidate="TextBox1"
       Type="Date"
       runat="server"/>

在后面的代码中设置Compare1.ValueToCompare = new DateTime(...); Compare1.Operator = ValidationCompareOperator.LessThanEqual;

另外,请记住: 您应始终在服务器和客户端上进行验证,因为客户端验证很容易关闭或旁路。 我建议你看看Fluent验证

利用CustomValidator可以轻松解决您的问题。

的CustomValidator

要么

您可以使用javascript验证日期,如下所示

var myDate=new Date();
myDate.setFullYear(2010,0,14);
var today = new Date();

if (myDate>today)
  {
  alert("Today is before 14th January 2010");
  }
else
  {
  alert("Today is after 14th January 2010");
  }

在javascript解决方案中,

如果您只想比较日期(即日,月和年),请务必将hrs,min,secs和milliseconds设置为0。 实现上述功能如下,

function f_tcalResetTime (d_date) {
    d_date.setHours(0);
    d_date.setMinutes(0);
    d_date.setSeconds(0);
    d_date.setMilliseconds(0);
    return d_date;
}

如果你比较日期,javascript实际上在幕后调用date.valueOf函数,它返回自1970年1月1日午夜以来经过的毫秒数。

好日期伴侣。 有很多选择。 您可以使用asp.net的自定义验证器控件,javascript等。更好的选择是使用带有屏蔽编辑验证器的AJAX控件工具包的屏蔽编辑扩展器。 您可以使用它指定范围,自定义掩码(yyyy / MM / dd)甚至是空字段消息。

只需确保您正确设置了网站的文化,以便您可以正确验证日期。 http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/MaskedEdit/MaskedEdit.aspx

干杯。

<ajaxToolkit:MaskedEditValidator
ControlExtender="MaskedEditExtender2"
ControlToValidate="TextBox2" 
IsValidEmpty="False" 
MaximumValue="12000" 
EmptyValueMessage="Number is required"
InvalidValueMessage="Number is invalid"
MaximumValueMessage="Number > 12000"
MinimumValueMessage="Number < -100"
MinimumValue="-100" 
EmptyValueBlurredText="*" 
InvalidValueBlurredMessage="*" 
MaximumValueBlurredMessage="*" 
MinimumValueBlurredText="*"
Display="Dynamic" 
TooltipMessage="Input a number: -100 up to 12.000"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM