您好,
<select id="SelectLanguage" name="SelectLanguage" onchange="refreshpagehtml();">
<script type="text/javascript">
var PreferredLanguageValues = PreferredLanguageValues();
var sel = document.getElementById('SelectLanguage');
for(var i = 0; i < PreferredLanguageValues.length; i++) {
var NameValuePair=PreferredLanguageValues[i].split(":");
var opt = document.createElement('option');
opt.innerHTML = NameValuePair[0];
opt.value = NameValuePair[1];
sel.appendChild(opt);
}
</script>
</select>
在html页面中使用上述逻辑进行下拉列表。下拉值取自JS文件中的PreferredLanguageValues()函数。
function PreferredLanguageValues()
{
var values = new Array();
//Add Language - Display:Language_CountryCode
values[1] = "English:en_US";
values[2] = "French:fr_FR";
values[3] = "Chinese:zh_CN";
values[4] = "Arabic:ar_SA";
values[5] = "Russian:ru_RU";
values[6] = "Spanish:es_ES";
values[7] = "Portugese:pt_BR";
return values;
}
逻辑是这样的,当我更改下拉值时,重新加载页面。重新加载的页面不会显示所选的下拉列表值。它总是在下拉菜单中显示英语。 在这方面,有谁可以帮助我。 感谢。
答案 0 :(得分:1)
您有一些错误:
1)你的数组索引必须在0开始,否则,修改你的for()从1开始。这是因为它试图在一个< em> undefined 对象。
2)在行中:
var PreferredLanguageValues = PreferredLanguageValues();
您有错误,因为您正在命名具有相同名称的两个变量,更改变量或函数的名称。
3)(可选)验证是否在加载DOM元素之前声明了PreferredLanguageValues()函数,因为如果DOM元素不存在,您将永远不会看到这些选项。
我使用此更改,我希望这有帮助。
答案 1 :(得分:0)
好像你不需要重新加载页面。你熟悉AJAX吗?这允许“查询”您的jsp页面以获取值列表而无需重新加载页面。
阅读概述here at MDN。
如果我错过了标记,请发布您正在调用的refreshpagehtml()函数。
答案 2 :(得分:0)
重新加载页面的原因是什么?您无需重新加载。如果要重新加载页面,则可以将所选项目放在cookie或HTML 5本地存储中并将其检索回来并重置下拉列表选定值