在客户端的下拉菜单中验证所选月份和年份中的选定日期

时间:2013-05-25 17:11:20

标签: c# javascript jquery asp.net-mvc asp.net-mvc-4

我正在使用我的mvc 4应用程序。我有日,月,年下拉菜单来选择出生日期。现在,我想验证所选月份和年份中的选定日期(特别是2月29日,28日和所有月份)。是否有任何已定义的jquery或javascript函数?

请帮忙。

2 个答案:

答案 0 :(得分:2)

function isDate(txtDate) {
    var currVal = txtDate;
    if (currVal == '')
       return false;

  //Declare Regex  
  var rxDatePattern = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
  var dtArray = currVal.match(rxDatePattern); // is format OK?

  if (dtArray == null)
      return false;

   //Checks for dd/mm/yyyy format.
   var dtDay = dtArray[1];
   var dtMonth = dtArray[3];
   var dtYear = dtArray[5];

  if (dtMonth < 1 || dtMonth > 12)
      return false;
  else if (dtDay < 1 || dtDay > 31)
      return false;
  else if ((dtMonth == 4 || dtMonth == 6 || dtMonth == 9 || dtMonth == 11) && dtDay == 31)
      return false;
  else if (dtMonth == 2) {
      var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
      if (dtDay > 29 || (dtDay == 29 && !isleap))
          return false;
  }

  return true;
}

这将采用“dd / MM / yyyy”格式。

答案 1 :(得分:0)

<script type="text/javascript">

function checkdate(input){

var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
var returnval=false
if (!validformat.test(input.value))
alert("Invalid Date Format. Please correct and submit again.")
else{ 

var monthfield=input.value.split("/")[0]
var dayfield=input.value.split("/")[1]
var yearfield=input.value.split("/")[2]
var dayobj = new Date(yearfield, monthfield-1, dayfield)
if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
else
returnval=true
}
if (returnval==false) input.select()
return returnval
}

</script>

你在点击提交按钮时调用此函数,你必须将mm / dd / yyyy格式的日期传递给此函数。它将验证所有日期。如果你遇到问题那么请回复我。