我在页面中添加多语言功能,但在选择框中遇到问题。我想更改页面上动态显示的语言,以匹配选择框中选定的语言。
这是我的HTML代码:
<?php
include_once 'multilingual_common.php';
?>
<!DOCTYPE>
<html>
<head>
<title>Test Form</title>
</head>
<body>
<div id="languages">
<select onChange="if (this.value) window.location.href=this.value">
<option value="multilingual_test.html?lang=en">English</option>
<option value="multilingual_test.html?lang=ko">한국어</option>
</select>
<a href="multilingual_test.html?lang=en">English</a>
<a href="multilingual_test.html?lang=ko">한국어</a>
</div>
<ul>
<li><?php echo $lang['CHARACTER_NAME']; ?> Rose</li>
<li><?php echo $lang['CHARACTER_LEVEL']; ?> 40</li>
<li><?php echo $lang['CHARACTER_SEX']; ?> female</li>
<li><?php echo $lang['CHARACTER_SEX']; ?> none</li>
</ul>
</body>
</html>
单击标签但不选择选择框时有效。标记中使用的onChange事件不起作用。我该如何解决这个问题?
答案 0 :(得分:2)
您正在使用选择列表。获得价值有点复杂。
选择列表包含许多options
。选项是this
事件中onchange
对象下的数组。
当前选定的索引存储在this.selectedIndex
因此,要获取值,您需要通过所选值
访问数组中的正确选项this.options[this.selectedIndex].value
是从选择列表中获取值的方法。
要修复代码,您应该使用
代替<select onChange="if (this.value) window.location.href=this.value">
您需要获取选项的值
<select onChange="if (this.options[this.selectedIndex].value) window.location.href=this.options[this.selectedIndex].value">
答案 1 :(得分:0)
试试这个
<select onchange="location = this.options[this.selectedIndex].value;">
<option value="multilingual_test.html?lang=en">English</option>
<option value="multilingual_test.html?lang=ko">한국어</option>
</select>