更改jQueryMobile的JTSage日期和时间选择器插件中的语言文件

时间:2013-07-07 21:12:54

标签: jquery-mobile jquery-plugins datebox

我找不到如何更改数据库

上的语言的方法

这是我的代码片段 我正在加载语言文件

<script type="text/javascript" src="../../js/i8n/jquery.mobile.datebox.i18n.en.js"></script>
<script type="text/javascript" src="../../js/i8n/jquery.mobile.datebox.i18n.de.js"></script>

  <div data-role="fieldcontain" id="langSelect">
     <label for="picklang">
      Language</label>
    <select name="picklang" id="picklang" data-native-menu="false">
      <option value="en">[en] English US</option>
      <option value="de" selected="selected">[de] German</option>
    </select>
  </div>
  <div data-role="fieldcontain" id="calendar">
     <input name="startDate" type="date" data-role="datebox" id="startDate" data-options='{"mode": "flipbox", "useLang": "de"}' />
  </div>

我想根据#picklang的选定值更改数据库的本地化,因此我使用以下脚本代码

<script type="text/javascript">
  $(document).delegate('#picklang', 'change', function () {
    var val = $("#picklang option:selected").val();
    alert(val);
    $('#startDate').attr('data-options', '{"mode": "flipbox", "useLang":"' + val + '"}');
  });

这就是问题所在。警报显示所选值,但数据堆(= flipbox)显示与之前相同的值(=加载页面后)。

有谁可以给​​我建议? 迈克尔

1 个答案:

答案 0 :(得分:0)

这里有一个小片段,它不仅会动态加载新选择的语言,还会更改为页面上每个日期框中的新选择。

$('.opt-pop-lang').live('change', function() {
  newLang = $(this).val();
  $.ajax({
    url: "http://dev.jtsage.com/cdn/datebox/i18n/jquery.mobile.datebox.i18n." + newLang + ".utf8.js",
    success: function(data) {
      eval(data);
      var x = $.mobile.datebox.prototype.options.lang[newLang];
      $(document).find('[data-role=datebox]').each(function() {
        $(this).data('mobileDatebox').options.lang[newLang] = x;
        $(this).data('mobileDatebox').options.useLang = newLang;
      });
    }
  });
});

它可能比您需要的多,但.useLang行正在改变语言。之前的位是拉入文件并将其注入每个日期框实例。