使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)
Posted
技术标签:
【中文标题】使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)【英文标题】:Custom date format validation with jQuery datepicker (can't get rid of US date validation) 【发布时间】:2011-06-28 11:34:32 【问题描述】:我快到了。 我创建了本地化的 jQuery 日期选择器,添加了自定义格式验证,但无法摆脱(默认?)美国日期格式验证。
我正在像这样呈现我的日期字段:
...
@html.EditorFor(m => m.JobDate)
@Html.ValidationMessageFor(m => m.JobDate)
...
HTML 看起来像这样:
<input class="date hasDatepicker" data-val="true" data-val-required="The JobDate field is required." id="JobDate" name="JobDate" value="28.6.2011" type="text">
<span class="field-validation-valid" data-valmsg-for="JobDate" data-valmsg-replace="true"></span>
最后,我连接(在我的 javascript 文件中)一个 jQuery datepicker 控件来处理我的日期字段:
$(document).ready(function ()
jQuery.validator.addMethod(
"hrDateValidator",
function(value, element)
try jQuery.datepicker.parseDate( 'd.m.yy', value); return true;
catch(e)return false;
,
"Datum nije u formatu d.m.gggg"
);
$('.date').datepicker( dateFormat: "d.m.yy" );
$.datepicker.setDefaults($.datepicker.regional["hr"]);
$('.date').rules("remove");
$('.date').rules("add", hrDateValidator: true );
);
但是,现在我在日期字段上有两个有效的验证规则,美国日期和这个自定义日期。
我无法摆脱这个美国日期规则,为什么这$('.date').rules("remove");
行不删除美国日期规则?
谢谢,
伊戈尔
【问题讨论】:
【参考方案1】:您可以尝试“覆盖”日期验证方法,而不是添加新方法:
jQuery.validator.methods["date"] = function (value, element) ...
【讨论】:
我只花了一个多小时才弄清楚为什么它没有正确解析日期,尽管我设置了自定义日期格式。谢谢。【参考方案2】: date: function (value, element)
try jQuery.datepicker.parseDate('d.m.yy', value); return true;
catch (e) return false;
,
【讨论】:
以上是关于使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)的主要内容,如果未能解决你的问题,请参考以下文章
jquery datepicker上的自定义动态验证直到第二个焦点才起作用
如何使用 JavaScript 或 jQuery 在 html 中使用 datepicker 按年月和日填充年龄