gpt4 book ai didi

javascript - ExtJs datefield 将无效日期转换为有效日期

转载 作者:行者123 更新时间:2023-11-29 22:01:28 25 4
gpt4 key购买 nike

我正在使用 ExtJS 2.1,但遇到以下问题,我讨厌“日期字段”。现在必须以“MM/DD/YYYY”格式输入日期。问题是如果用户输入类似“21/17”或“16/05”的内容,它会转换为有效日期。 (21/17 转换为 9/17/2015,16/05 转换为 4/05/2015)。如何覆盖此行为?我尝试编写自己的验证器,但这也无济于事,即使我的验证器返回“false”,转换仍然会发生。这是下面的代码:

var d = new Ext.form.DateField({
el: el.dom,
id: id,
format: 'm/d/Y',
hideTrigger: false,
allowBlank: true,
disabled: isDisabled,
validator: testForShortDate,
validateOnBlur: true,
minLength:6,
//validationEvent: false, //string or boolean
invalidText: 'Enter date as MM/DD/YYYY',
menuListeners: Ext.applyIf({
select: function (m, d) {
Ext.form.DateField.prototype.menuListeners.select.apply(this, arguments);
this.focus.defer(100, this);
onDateSelect(m, d, this);
}
})
});

d.render();

d

function testForShortDate(date) {
if (date.split("/").length != 3) {
console.log(date.split("/").length);
return false;
}
return true;

有人能帮忙吗?

最佳答案

如果无法使用配置的 format 解析日期字段的值,ExtJS 将尝试使用其他日期格式。 .这些格式可以使用 altFormats 定义属性(property)。

默认值为:

m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d

这解释了为什么像 21/17 被转换为 9/17/2015,因为这里使用格式 m/d (2014 年的“第 21”个月实际上是 2015 年的第 9 个月)。

如果你想完全禁用它,只需将属性设置为空字符串:

altFormats: ''

关于javascript - ExtJs datefield 将无效日期转换为有效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23520138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com