1

我正在使用这个MooTools 日期选择器

如何使用 JavaScript 从中获取当前值(Unix TS 或日期)?

我的代码是:

window.addEvent('load', function() {
    new DatePicker('.demo_vista', {
        pickerClass: 'datepicker_vista',
        format: 'm/d/Y',
        allowEmpty: true,
        toggleElements: '.date_toggler'
    });
});

我已经尝试过标准getElementById('mydatepicker').value,但我[object NodeList]每次都得到。

4

2 回答 2

1

这个日期选择器有不同的版本。有些输出 UNIX 有些不输出。

要从输入字段/日期选择器中获取值,如果你有一个 id,你可以使用$('mydatepicker').valueor document.id('mydatepicker').value,或者像你描述的那样使用普通的 javascript。检查你得到的值 $('mydatepicker').value 是否已经是 UNIX。否则你可以解析日期。 

如果输入值中没有 UNIX 时间戳,则可以使用以下方法将日期转换为它:

var unix = new Date(this.value).format('%s');

在选项中(如果您没有获得 UNIX 时间戳),您还可以添加inputOutputFormat: 'U',以指定 UNIX 应该是输入字段的值(某些版本具有此默认值)。此输入字段是隐藏的,因为 datepicker 创建了一个您看到的克隆。但是这个隐藏字段是 html 标记中的一个,因此是带有 ID 的那个。

检查此演示,更改日期并查看控制台。

于 2013-08-21T16:28:47.657 回答
0

日期选择器选项:

  • format - 是一种可见的日期格式。提交表单时不影响实际输出

  • inputOutputFormat - 定义如何解释原始 datepicker 输入元素的输入值(默认值 U 是 Unix-timestamp )

  • onSelect - 选择日期时触发的事件挂钩

    new DatePicker('.demo_vista', { 
        pickerClass: 'datepicker_vista', 
        format: 'm/d/Y',
        inputOutputFormat: 'm/d/Y',
        allowEmpty: true, 
        toggleElements: '.date_toggler',
        onSelect: function( date ) {
            alert( date );
            alert( $('mydatepicker').value );
        }
    });
    

除非您定义 inputOutputFormat 选项,否则表单的默认输出将是 Unix 时间戳,并且该值可以使用$('mydatepicker').value( 与 相同document.getElementById('mydatepicker').value )

于 2013-08-21T17:11:51.317 回答