如何以编程方式在jquery mobile Datebox插件1.1.0中设置日期

vij*_*agi 2 jquery-mobile datebox

我想以编程方式为datebox控件的输入设置日期,为此我知道我可以使用这样的东西

$(element).trigger('datebox', {'method':'set', 'value':'dateString'});
Run Code Online (Sandbox Code Playgroud)

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

编辑:基于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'
});
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用这样设置日期

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

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

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

vij*_*agi 6

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

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

显式设置输入字段的值

$(element).val('06-21-2012');
Run Code Online (Sandbox Code Playgroud)

然后刷新日期框

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