-->

日期字段面膜不工作[复制](Date Field Mask Not Working [duplica

2019-11-03 09:11发布

这个问题已经在这里有一个答案:

  • JavaScript的日期格式的ColdFusion日期字段 1回答

这是非常令人沮丧。 我使用cfinput datefieldmask="MM/DD/YYYY"和其不工作。 如果是cfinput textmask="MM/DD/YYYY"它的作品完美。 我不想只是有一个文本框,但我想保持的日期字段给出你...问题是日历时他们使用的日历它是正确的格式MM / DD / YYYY但如果用户只是类型中的日期到文本框中不使用日历,用户可以输入任何他们想要..(122334435)这显然是不能接受的。 任何意见或解决方法的人可能知道的?

作品:

    <cfform name="foo">
    <cfinput 
      type="text" 
      name="test" 
      validate="eurodate" 
      mask="99/99/9999" 
      validateat="onblur" />
    <input type="submit">
    </cfform>

不工作:

    <cfform name="foo">
    <cfinput 
      type="datefield" 
      name="test" 
      validate="eurodate" 
      mask="MM/DD/YYYY" 
      validateat="onblur" />
    <input type="submit">
    </cfform> 

Answer 1:

我增加了一个答案, 其他问题那是在讨论同样的问题最初打开。 我会在这里发表一点,以及因为用户可能会发现这个问题,而不是其他的。 或者你可以删除这个问题。

我认为,问题是, mask的属性<cfinput type="datefield" ...代码只使用Flash形式的作品时- 文档参考 。

强调从下文件全文

屏蔽cfcalendar和输入的DateField

在cfcalendar标签和Flash格式的DateField输入控件 ,可以使用下面的面具,以确定输出的格式。 您可以在面膜使用大写或小写字符:

...

下面的模式指定闪存形式发送使用的DateField输入控制到ColdFusion作为在格式2004年4月29日的文本选择的日期:

<cfinput name="startDate" type="datefield" label="date:" mask="mm/dd/yyyy"/>

既然你不使用Flash格式的面具是不是为你工作。 你可以尝试切换到常规<cfinput type="text" ...的输入和改变你的面具有点像"99/99/9999" 。 这会给你正确的格式,但用户仍然可以输入无效日期,所以你需要额外的代码,以赶上。

这就是为什么使用的只是另一个例子内置的ColdFusion UI标签是不是一个好主意。 他们非常简单的例子工作,但是当你需要更多的自定义他们失败了你。 你会过得更好使用的客户端验证JavaScript库(如jQuery)。 Adobe公司自己的本·福尔塔这个几年前承认 。 和ColdFusion的-UI最右侧路项目开始,因为这一点。

编辑

在被张贴的其他问题亚当指出ColdFusion文档中的另一个参考 ,从而加强了我的观点。 我强调从下文件全文

屏蔽输入数据

在HTML和Flash形式中,所述掩模属性控制可以输入到文本字段或者是在将DateField输入控制日历选择的数据的格式。 在HTML格式,它不会阻止用户输入不遵循面具到的DateField输入控制的日期。 您可以在现场结合掩蔽和验证。



文章来源: Date Field Mask Not Working [duplicate]