[英]Preserve a value of an element after change using jQuery
For internationalization support, I wrote code that changes the URL from #lang-select
dropdown .The code is 为了获得国际化支持,我编写了代码来改变
#lang-select
下拉列表中的URL。代码是
$(document).ready(function(){
var sel = document.getElementById('lang-select');
sel.onchange = function(){window.location.replace($('#lang-select').val());};
});
the above code works fine and it changes the URL from http://0.0.0.0:3000/fr
to http://0.0.0.0:3000/en
. 上面的代码工作正常,它将URL从
http://0.0.0.0:3000/fr
更改为http://0.0.0.0:3000/en
。 Now I want to preserve the changed value, but without success. 现在我想保留更改的值,但没有成功。 I have written the code below.
我写了下面的代码。 I don't know why it is wrong/not working .
我不知道为什么它错了/不工作。
function langSelect(){
var available_languages = {
"en":"English",
"de":"Deutsch",
"ru" :"Россию",
"fr" : "Française"
};
var languageInUrl= document.URL.split("/")[3];
for(var shortLanguage in available_languages){
if(shortLanguage === languageInUrl) {
var langaugeOptionArray = $("#lang-select>option");
for(var i = 0 ; langaugeOptionArray.length > i ; i++){
if(langaugeOptionArray[i].label === available_languages[shortLanguage]){
langaugeOptionArray[i].selected = true;
return;
}
}
}
}
}
Please tell me what's wrong in above code and since what I am doing is not a new thing, please share what is the best practice to overcome this scenario. 请告诉我上面的代码有什么问题,因为我所做的不是新事物,请分享一下克服这种情况的最佳做法。
Currently, I am using backend to accomplish this. 目前,我正在使用后端来实现这一目标。
$(function() {
$('#lang-select').on("change",function(){
window.location.replace($(this).val());
});
});
function langSelect(){
var available_languages = {
"en":"English",
"de":"Deutsch",
"ru" :"Россию",
"fr" : "Française"
};
var languageInUrl= document.URL.split("/")[3];
var lang = available_languages[languageInUrl];
if (lang) {
var langaugeOptionArray = $("#lang-select>option");
langaugeOptionArray.each(function() {
if($(this).text() === lang){
$("#lang-select").val(lang);
return false;
}
});
}
}
I believe we can even do 我相信我们甚至可以做到
if (lang) {
var opt = $("#lang-select").find('option[text="'+lang+'"]').val();
if (opt) $("#lang-select").val(opt);
}
Good luck 祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.