使用jqueryUI parseDate方法验证日期格式

时间:2016-05-26 05:25:04

标签: jquery jquery-ui jquery-ui-datepicker

我有sample fiddle,其中我试图将日期格式验证为

n

但错误没有显示出来。代码有什么问题?

1 个答案:

答案 0 :(得分:3)

错误未显示,因为parseDate()函数发生错误,因为日期无效。您需要先处理该错误。这是jsFiddle

$(function() {
  $("#datepicker").datepicker({
    dateFormat: 'dd/mm/yy',
  });

  $('button').click(function() {
    $('#error').text('');
    try {
    var dateParse = $.datepicker.parseDate("dd/mm/yy", $("#datepicker").val());
    } catch (e) {}
    if (dateParse) {
      $('#error').text(dateParse);
    } else {
      $('#error').text('invalid date format');
    }
  });
});
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p>Date:
  <input type="text" id="datepicker">
</p>
<p id="error">

</p>
<button>
  Validate
</button>

我建议显示错误而不是您的自定义:

$(function() {
  $("#datepicker").datepicker({
    dateFormat: 'dd/mm/yy',
  });

  $('button').click(function() {
    $('#error').text('');
    try {
    var dateParse = $.datepicker.parseDate("dd/mm/yy", $("#datepicker").val());
    if (dateParse) {
      $('#error').text(dateParse);
    }
    } catch (e) {$('#error').text(e);}
  });
});
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p>Date:
  <input type="text" id="datepicker">
</p>
<p id="error">

</p>
<button>
  Validate
</button>