默认的ExtJS form.field.date除了使用日期选择器之外,还允许手动输入/编辑日期。但是,如果为DD输入的数字大于31,而对于MM输入的数字大于12,它将重新计算该值。

例如,如果列出的MM / DD / YYYY是12/01/2011,而您将其编辑为15/01/2011(最大MM值应为12),则会重新计算以显示03/01/2012-假设您打算将最大值加3。

有什么办法可以关闭此功能?我希望显示验证/错误消息,因此用户必须手动更改而不是自动重新计算。这似乎是其他人想要的基本功能-我在配置选项中缺少什么吗?

交叉发布在Ext forums中。

最佳答案

没有允许您执行此操作的配置选项。但是您可以做的是提供验证器功能。在默认验证之前调用此函数,我认为默认验证必须在更改值之前进行。

new Ext.form.DateField({

   validator : function(value){
      var split = value.split('/'); //Assuming / is your seperator
      if(split[0] > 31)
      {
        //Show error
      }
      // Other validations etc.
   }
});


如果更改值发生在调用验证程序之前,请添加配置选项:
validateOnBlur : true

关于javascript - 如果输入了无效的MM或DD,ExtJS form.field.date将重新计算日期。怎么预防?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8436809/

10-09 01:42