Javascript 将自动斜杠添加到日期字段extjs

Javascript 将自动斜杠添加到日期字段extjs,javascript,extjs,dom-events,datetime-format,Javascript,Extjs,Dom Events,Datetime Format,我在extjs中使用了一个日期字段,我希望每当用户通过键盘(而不是通过从日期选择器中选择日期)手动添加日期时,斜杠应该自动添加到用户输入的日期 例如: 如果输入的日期为2122013,则应将其格式化为2013年2月12日,依此类推 我有一个纯JavaScript解决方案,用于下面给出的表单中的简单文本字段,它可以很好地向文本字段添加斜杠,我想知道的是,通过使用EXTJS date field或Ext.date提供的任何配置选项,而不是使用纯JavaScript解决方案,可以自动添加斜杠 当前有效

我在extjs中使用了一个日期字段,我希望每当用户通过键盘(而不是通过从日期选择器中选择日期)手动添加日期时,斜杠应该自动添加到用户输入的日期

例如:
如果输入的日期为2122013,则应将其格式化为2013年2月12日,依此类推

我有一个纯JavaScript解决方案,用于下面给出的表单中的简单文本字段,它可以很好地向文本字段添加斜杠,我想知道的是,通过使用EXTJS date field或Ext.date提供的任何配置选项,而不是使用纯JavaScript解决方案,可以自动添加斜杠

当前有效的JAVASCRIPT代码:

function FixShortDate(txtBox) {
  if (txtBox == null) {
    return ''
  }

  var re = new RegExp(/(\d{6})(\d{2})?/);

  if (re.test(txtBox.value)) {
    if (txtBox.value.length == 8) {
      txtBox.value = txtBox.value.substring(0, 2) + '/' + txtBox.value.substring(2, 4) + '/' + txtBox.value.substring(4, 8)
    }
    if (txtBox.value.length == 7) {
      txtBox.value = txtBox.value.substring(0, 2) + '/' + txtBox.value.substring(2, 3) + '/' + txtBox.value.substring(3, 8)
    }

    if (txtBox.value.length == 6) {
      if (txtBox.value.substring(4, 6) < 20) {
        txtBox.value = txtBox.value.substring(0, 2) + '/' + txtBox.value.substring(2, 4) + '/20' + txtBox.value.substring(4, 6);
      } else {
        txtBox.value = txtBox.value.substring(0, 2) + '/' + txtBox.value.substring(2, 4) + '/19' + txtBox.value.substring(4, 6);
      }
    }
  }
  return txtBox.value;
}
函数FixShortDate(txtBox){
如果(txtBox==null){
返回“”
}
var re=new RegExp(/(\d{6})(\d{2})/);
if(重新测试(txtBox.值)){
if(txtBox.value.length==8){
txtBox.value=txtBox.value.substring(0,2)+'/'+txtBox.value.substring(2,4)+'/'+txtBox.value.substring(4,8)
}
if(txtBox.value.length==7){
txtBox.value=txtBox.value.substring(0,2)+'/'+txtBox.value.substring(2,3)+'/'+txtBox.value.substring(3,8)
}
if(txtBox.value.length==6){
if(txtBox.value.substring(4,6)<20){
txtBox.value=txtBox.value.substring(0,2)+'/'+txtBox.value.substring(2,4)+'/20'+txtBox.value.substring(4,6);
}否则{
txtBox.value=txtBox.value.substring(0,2)+'/'+txtBox.value.substring(2,4)+'/19'+txtBox.value.substring(4,6);
}
}
}
返回txtBox.value;
}
我还想知道,在用户输入日期的同时(即通过捕获任何键盘事件),这是否可能实现

可以使用EXTJS date字段或Ext.date提供的任何配置选项,而不是使用纯JavaScript解决方案

没有

此外,我还想知道,在用户输入日期的同时(即通过捕获任何键盘事件),这是否可行


如果退出ExtJs字段,则为您设置日期格式。我选中了该选项,并且仅当您以任何特定格式输入8位数字时,该选项才有效。在我的情况下,用户可能会输入少于8位的日期,例如2 2 2013…这样就不起作用了。但如果你试图提出要求,你不知道用户是否输入了
22
或是指2月2日。所以你建议强制输入8位数字,或者有其他办法吗?我问测试人员在我的工作,他们说这不是强制性的。所以我想我们需要另一种方式:)你看了配置了吗?