数据报童脚本:
$(function(){
$( "#task_start_date").datepicker({
dateFormat: 'dd-M-yy',
showOn: 'button',
buttonImage :image_us,
buttonImageOnly: true
});
HTML输入:
<input type="text" class="form-control validate[required,custom[date]]" name="task_start_date" id="task_start_date" />
当在日历图标中单击时,dateFormat: 'dd-M-yy',
输出27-Nov-2014
并显示突出显示的当前日期,
但是dateFormat: 'dd-M-y',
输出01-MAR-12
,并将01-MAR-12
显示为突出显示而不是当前。
我正在使用jQuery Validation Engine
验证日期格式。下面的小提琴工作良好,但不符合预期的日期格式。
JS Fiddle:小提琴
谢谢。
发布于 2014-11-27 10:38:46
我看到你的JS Fiddle了。我认为,您在RegExp结果上有一个错误,即null。
我试着改变你的RegExp。
new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{4})/);
变到
new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2,4})/);
和变化
var isOk = (d.getFullYear() == year && d.getMonth() == months.indexOf(month) && d.getDate() == day);
至
var isOk = (d.getYear() == (year).slice(-2) && d.getMonth() == months.indexOf(month) && d.getDate() == day);
下面是完整的代码。第二次修改版本。
$( "#task_start_date").datepicker({
monthNamesShort: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"],
dateFormat: 'dd-M-y',
defaultDate: '18-Nov-14',
onClose: function (date) {
var pattern = new RegExp(/([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2,4})/);
var match = pattern.exec(date);
if (match == null)
return false;
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
var year = match[3];
var month = match[2];
var day = match[1];
var d = new Date(year, months.indexOf(month), day);
var isOk = (d.getYear() == (year).slice(-2) && d.getMonth() == months.indexOf(month) && d.getDate() == day);
alert(isOk); }
});
$("#task_start_date").datepicker( "setDate", new Date());
https://stackoverflow.com/questions/27167655
复制相似问题