页面重新加载后丢失值丢失

时间:2013-04-29 07:46:44

标签: javascript html jsp

您好,

<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;
}

逻辑是这样的,当我更改下拉值时,重新加载页面。重新加载的页面不会显示所选的下拉列表值。它总是在下拉菜单中显示英语。 在这方面,有谁可以帮助我。 感谢。

3 个答案:

答案 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本地存储中并将其检索回来并重置下拉列表选定值