如何获取 Dojo DateTextBox 小部件的内部值?

How to get internal value of Dojo DateTextBox widget?

我在表单上有一个 dijit/form/DateTextBox,我需要从中获取内部隐藏值(格式为 yyyy-MM-dd)并将其添加到 URL 以获得 AJAX请求。
我该怎么做呢? DateTextBox 的任何单一方法都会给我那个值吗?

我的 HTML 字段是:

<input id="ialFromDate">

我正在使用此 javascript:

创建具有固定显示格式的小部件
var fDate1=new DateTextBox({constraints:{datePattern:'dd/MM/yyyy'}},'ialFromDate');
fDate1.startup();

如果我使用浏览器 UI 将值设置为 2015 年 9 月 1 日,它显示为“01/09/2015”,并且有一个值为“2015”的隐藏 input 元素-09-01”,如预期。

我想获得隐藏的 input 元素的准确值。

我使用了以下代码进行测试:

var date1=fDate1.get('value');
console.log('date1='+date1);

控制台输出为:
date1=Tue Sep 01 2015 00:00:00 GMT+1000 (AUS Eastern Standard Time)
这不是我需要的,也不是我期望的。

你可以试试fDate1.valueNode.value。 fDate1 是包含此隐藏 DOM 节点 (fDate1.valueNode) 的 DateTextBox 对象。如果您获得隐藏的 DOM 节点的值,您可以获得在 DateTextBox 中看到的字符串值。

您通过 get('value') 收到的值实际上是一个完整的 Date 对象,它应该可以有效地让您以各种方式获得您想要的任何格式。例如:

var date1 = fDate1.get('value');
// stamp = dojo/date/stamp
console.log(stamp.toISOString(date1).slice(0, 10));

这似乎是获取所需格式的日期值的最简单方法:

var date1=fDate1.valueNode.value;

它有效,尽管我在 dijit/form/DateTextBox 的 Dojo 文档中找不到任何提及 valueNode 的地方。

几个小时前,其他人将此解决方案发布为对我的问题的回答或评论,但似乎已被删除。