Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ExtJS日期选择器输入值中允许非数字_Javascript_Forms_Extjs_Datepicker - Fatal编程技术网

Javascript 在ExtJS日期选择器输入值中允许非数字

Javascript 在ExtJS日期选择器输入值中允许非数字,javascript,forms,extjs,datepicker,Javascript,Forms,Extjs,Datepicker,这件事难倒我了。我们有一个ExtJS表单,其中输入生日。然而,出生的月份或日期往往不得而知。用户的约定是在未知时输入xx——xx/xx/1984 如果需要输入xx,可以键入,否则可以使用ExtJS日期选择器。保存工作正常,但如果您以xx/xx/1984格式保存,然后再次查看表单,而不是显示输入的出生日期,则该字段为空。这是因为ExtJS在日期字段中阻塞了非数字 PHP表单: echo "<input id=\"dobDt\" name=\"dobDt\" value=\"" . getDa

这件事难倒我了。我们有一个ExtJS表单,其中输入生日。然而,出生的月份或日期往往不得而知。用户的约定是在未知时输入xx——xx/xx/1984

如果需要输入xx,可以键入,否则可以使用ExtJS日期选择器。保存工作正常,但如果您以xx/xx/1984格式保存,然后再次查看表单,而不是显示输入的出生日期,则该字段为空。这是因为ExtJS在日期字段中阻塞了非数字

PHP表单:

echo "<input id=\"dobDt\" name=\"dobDt\" value=\"" . getData("dobDd","textarea") . "/" . getData("dobMm","textarea"). "/" .getData ("dobYy", "textarea") . "\" type=\"text\">
Ext将输入替换为。关于如何允许“xx”出现有什么想法吗


当日历出现并且您选择了一天时,也不确定如何处理“xx”。理想情况下,我们希望“xx/xx/1980”出现在输入中,但当您打开日历时,它会被解释为“01/01/1980”。

由于ExtJS不支持“xx”开箱即用的日期格式,因此您必须扩展DateField对象,并可能覆盖其某些功能,例如:

myNamespace.MyDateField = Ext.extend(Ext.form.DateField, {
    //your configs, functions to support "xx" behavior
}
听起来您还需要仔细考虑并更仔细地定义该组件在所有可能出现的用例中应该如何工作。例如,用户如何指定哪些字段(月、日和/或年)应该有“xx”和数字?DateField不是为此而设计的,因此您可能需要为此添加一些表单字段

有关创建自己的自定义ExtJS组件的更多信息,请参阅此处的Sencha指南:

(查找标题为“创建自定义组件”的部分,大约在页面的一半处。)


希望这对你有所帮助。干杯

因为ExtJS不支持开箱即用的“xx”日期格式,所以您会得到很好的响应。我们正在扩展DateField对象,但是您对定义使用范围的评论很有价值。在这种情况下,我们确实需要确定用户的工作流程。
myNamespace.MyDateField = Ext.extend(Ext.form.DateField, {
    //your configs, functions to support "xx" behavior
}