繁体   English   中英

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

[英]Dropdown value lost after page reload

你好

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

逻辑是,当我更改下拉值时,将重新加载页面。 重新加载的页面没有显示所选的下拉值。 它始终在下拉列表中显示英语。 任何人都可以在这方面帮助我。 谢谢。

您有一些错误:

1)您的数组索引必须从0开始 ,否则,请将for()修改为从1开始。这是通过for中的异常进行的,因为它试图在未定义的对象中进行拆分。

2)在行中:

var PreferredLanguageValues = PreferredLanguageValues();  

您有一个错误,因为您要使用相同的名称来命名两个var,因此请更改var或函数的名称。

3)(可选)验证是否在加载DOM元素之前声明函数PreferredLanguageValues(),因为如果DOM元素不存在,您将永远看不到这些选项。

我将其与这些更改一起使用,希望有帮助。

看来您不需要重新加载页面。 您熟悉AJAX吗? 这允许“查询”您的jsp页面以获取值列表,而无需重新加载该页面。

在MDN上阅读概述。

或者,如果我错过了标记,请发布您正在调用的refreshpagehtml()函数。

重新加载页面的原因是什么? 您不需要重新加载。 如果您想重新加载页面,则可以将所选项目放置在cookie或HTML 5本地存储中,然后将其取回并重置下拉菜单中的选定值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM