C# 验证出生日期的文本框
下面的代码用于验证出生日期的文本框。条件是C# 验证出生日期的文本框,c#,javascript,asp.net,regex,validation,C#,Javascript,Asp.net,Regex,Validation,下面的代码用于验证出生日期的文本框。条件是 文本框不能为空 文本框日期的格式应为dd/mm/yyyy 文本框日期不应大于当前日期。ie;无未来日期(显示错误,如-U r尚未出生,伙计) (年月日,例如:2011年12月12日) 但问题是,文本框位于ajax包装器中,因此只有客户端验证才能工作。 任何人在这里,请帮助我与任何提示,建议或与工作代码!!。我将非常满意,因为我从早上开始就在处理这个问题您的CustomValidator上可以有一个ClientValidationFunction
(年月日,例如:2011年12月12日)
但问题是,文本框位于ajax包装器中,因此只有客户端验证才能工作。
任何人在这里,请帮助我与任何提示,建议或与工作代码!!。我将非常满意,因为我从早上开始就在处理这个问题您的CustomValidator上可以有一个ClientValidationFunction属性
<asp:CustomValidator runat="server" ID="valDateRange" ControlToValidate="txtDateOfBirth" ErrorMessage="enter valid date" ClientValidationFunction="validateDate" />
然后创建一个Javascript函数:
function validateDate(sender, e) {
// Split out the constituent parts (dd/mm/yyyy)
var dayfield = e.Value.split("/")[0];
var monthfield = e.Value.split("/")[1];
var yearfield = e.Value.split("/")[2];
// Create a new date object based on the separate parts
var dateValue = new Date(yearfield, monthfield - 1, dayfield)
// Check that the date object's parts match the split out parts from the original string
if ((dateValue.getMonth() + 1 != monthfield) || (dateValue.getDate() != dayfield) || (dateValue.getFullYear() != yearfield)) {
e.IsValid = false;
}
// Check for future dates
if (e.IsValid) {
e.IsValid = dateValue <= new Date()
}
}
函数validateDate(发送方,e){
//拆分组成部分(日/月/年)
var dayfield=e.Value.split(“/”[0];
var monthfield=e.Value.split(“/”[1];
var yearfield=e.Value.split(“/”[2];
//基于单独的部分创建新的日期对象
var dateValue=新日期(yearfield,monthfield-1,dayfield)
//检查日期对象的部分是否与原始字符串中的拆分部分匹配
如果((dateValue.getMonth()+1!=monthfield)| |(dateValue.getDate()!=dayfield)| |(dateValue.getFullYear()!=yearfield)){
e、 IsValid=false;
}
//查看未来的日期
如果(e.IsValid){
e、 IsValid=dateValue您可以在CustomValidator上拥有ClientValidationFunction属性
<asp:CustomValidator runat="server" ID="valDateRange" ControlToValidate="txtDateOfBirth" ErrorMessage="enter valid date" ClientValidationFunction="validateDate" />
然后创建一个Javascript函数:
function validateDate(sender, e) {
// Split out the constituent parts (dd/mm/yyyy)
var dayfield = e.Value.split("/")[0];
var monthfield = e.Value.split("/")[1];
var yearfield = e.Value.split("/")[2];
// Create a new date object based on the separate parts
var dateValue = new Date(yearfield, monthfield - 1, dayfield)
// Check that the date object's parts match the split out parts from the original string
if ((dateValue.getMonth() + 1 != monthfield) || (dateValue.getDate() != dayfield) || (dateValue.getFullYear() != yearfield)) {
e.IsValid = false;
}
// Check for future dates
if (e.IsValid) {
e.IsValid = dateValue <= new Date()
}
}
函数validateDate(发送方,e){
//拆分组成部分(日/月/年)
var dayfield=e.Value.split(“/”[0];
var monthfield=e.Value.split(“/”[1];
var yearfield=e.Value.split(“/”[2];
//基于单独的部分创建新的日期对象
var dateValue=新日期(yearfield,monthfield-1,dayfield)
//检查日期对象的部分是否与原始字符串中的拆分部分匹配
如果((dateValue.getMonth()+1!=monthfield)| |(dateValue.getDate()!=dayfield)| |(dateValue.getFullYear()!=yearfield)){
e、 IsValid=false;
}
//查看未来的日期
如果(e.IsValid){
e、 IsValid=dateValue无需使用valodators,使用requiredfieldvalidator检查是否为空,并在获取焦点时使用jquery日期选择器使字段具有日期日历
这是一个非常简单的示例,如果您需要任何帮助,请告诉我:无需使用valodators,使用requiredfieldvalidator检查是否为空,并使用jquery日期选择器在获得焦点时使字段具有日期日历
这是一个非常简单的示例,如果您需要任何帮助,请告诉我:我同意varangian_12的回答,但请确保在您的用户禁用Javascript的情况下也执行某种服务器端验证,或者禁用它以绕过验证
您可以执行一个简单的DateTime.TryParse([string value])
,然后检查以确保日期发生在过去
您只需确保处理边缘案例场景我同意varangian_12的回答,但也要确保对禁用Javascript的非案例进行某种服务器端验证,或者禁用它以绕过验证
您可以执行一个简单的DateTime.TryParse([string value])
,然后检查以确保日期发生在过去
你只需要确保处理边缘案例场景,你应该试试这个。我会运行得很好。你也可以使用“jquery.validate.js”使文本框不能为空。此外,在css中,你还必须创建一个类错误
红色的有红色的
type=“text/css”media=“all”/
type=“text/javascript”>
$(函数(){
var minDate=新日期(“1990年1月1日”)
var todaysDate=新日期()
var maxDate=新日期(todaysDate.getFullYear()
todaysDate.getMonth()
getDate()-1)
var currentsYear=todaysDate.getFullYear()
变量范围='1900:'+currentsYear
$('#txtDOB')。日期选择器({
minDate:minDate
maxDate:maxDate
变化月:对
变化年:是的
年份范围:范围
})
})
你应该试试这个。我会运行得很好。你也可以使用“jquery.validate.js”使文本框不能为空。此外,在css中,你还必须创建一个类错误
红色的有红色的
type=“text/css”media=“all”/
type=“text/javascript”>
$(函数(){
var minDate=新日期(“1990年1月1日”)
var todaysDate=新日期()
var maxDate=新日期(todaysDate.getFullYear()
todaysDate.getMonth()
getDate()-1)
var currentsYear=todaysDate.getFullYear()
变量范围='1900:'+currentsYear
$('#txtDOB')。日期选择器({
minDate:minDate
maxDate:maxDate
变化月:对
变化年:是的
年份范围:范围
})
})
use jquery datepicker插件的可能副本。可根据您的需要进行自定义。另请参阅可能的副本
<p> type="text/javascript"></script></p>
<p> <script type="text/javascript"></p>
<p> $(function () {</p>
<p> var minDate = new Date('1/1/1990');</p>
<p> var todaysDate = new Date();</p>
<p> var maxDate = new Date(todaysDate.getFullYear(),</p>
<p> todaysDate.getMonth(),</p>
<p> todaysDate.getDate() - 1);</p>
<p> var currentsYear = todaysDate.getFullYear();</p>
<p> var range = '1900:' + currentsYear</p>
<p> $('#txtDOB').datepicker({</p>
<p> minDate: minDate,</p>
<p> maxDate: maxDate,</p>
<p> changeMonth: true,</p>
<p> changeYear: true,</p>
<p> yearRange: range</p>
<p> });</p>
<p> }); </p>