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

时间:2015-09-17 05:30:55

标签: javascript date dojo

我在表单上有dijit/form/DateTextBox,我需要从中获取内部隐藏值(格式为yyyy-MM-dd)并将其添加到AJAX请求的URL中。
我该怎么做呢? 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”,并且隐藏的input元素的值为“2015-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)
这不是我需要的,而不是我所期望的。

3 个答案:

答案 0 :(得分:1)

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

var date1=fDate1.valueNode.value;

虽然我在valueNode的Dojo文档中找不到dijit/form/DateTextBox,但它确实有用。

其他人在几小时前将此解决方案作为答案或评论发布,但这似乎已被删除。

答案 1 :(得分:0)

您可以尝试fDate1.valueNode.value。 fDate1是DateTextBox对象,它包含这个隐藏的DOM节点(fDate1.valueNode)。如果获得该隐藏DOM节点的值,则可以使用DateTextBox中的字符串值。

答案 2 :(得分:0)

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

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