2013-07-07 30 views
0

我不能找到一種方法如何改變語言上的數據箱量變到質變的語言文件jQueryMobile

這是我的codesnippets 我加載語言文件

<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)顯示的值與以前相同(=加載頁面後)。

有沒有人可以給我建議? Michael

回答

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行是什麼在改變語言。之前的位拉入文件並將其注入到每個日期框實例中。

+0

哦,如果你想看到它的行動,這就是驅動所有演示頁面上的語言選擇器。 –