【问题标题】:How to programatically set a date in jquery mobile Datebox plugin 1.1.0如何以编程方式在 jquery mobile Datebox 插件 1.1.0 中设置日期
【发布时间】:2012-06-30 09:26:48
【问题描述】:

我想通过日期框控件以编程方式为输入设置日期,为此我知道我可以使用类似的东西

$(element).trigger('datebox', {'method':'set', 'value':'dateString'});

但这似乎并没有更新控件(即当我打开日历时,它被设置为当前日期并且不等于输入字段中的值)

编辑: 基于 JTsage 的指针,我使用这样的方式将默认日期格式覆盖为 mm/dd/yyyy。

jQuery.extend(jQuery.mobile.datebox.prototype.options.lang, {
    'en': {
        dateFormat: '%m/%d/%Y'

    }
});
jQuery.extend(jQuery.mobile.datebox.prototype.options, {
    useLang: 'en'
});

然后我尝试像这样设置日期

$(element).trigger('datebox', {'method':'set', value:'07/02/2012'});

但是当我导航到页面时,这个日期没有出现。有趣的是,当我尝试从 firebug 控制台(在那个页面上)更新​​日期时,它更新了字段以及日期框控件。

我不知道为什么会这样..需要帮助,请回复 JT

【问题讨论】:

  • 这是正确的方法 - 但它只有在 'dateString' 与 DateBox 输出的格式相同时才有效。
  • 感谢您的回复,我认为这是我唯一缺少的。会尝试并更新相同的,再次感谢这么好的插件。

标签: jquery-mobile datebox


【解决方案1】:

所以最后我通过这样做解决了这个问题

jQuery.extend(jQuery.mobile.datebox.prototype.options, {
    'overrideDateFormat': '%m-%d-%Y',
    'overrideHeaderFormat': '%m-%d-%Y'
});

显式设置输入字段的值

$(element).val('06-21-2012');

然后刷新日期框

$(element).trigger('datebox', {'method':'set', 'value':'06-21-2012'});

【讨论】:

  • 虽然这很好,但如果能够通过实际的 Date 对象设置日期会更好。有一个方法: $(element).datebox('setTheDate', new Date());不幸的是,这不会更新小部件。
【解决方案2】:

我找到了解决方案,试试这个

 $(element).trigger('datebox', { 'method': 'doset' });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多