Select 框值到 href

Select box value to href

我正在为我的页面添加多语言功能,但在使用 select 框时遇到了问题。我想更改页面上动态显示的语言以匹配 select 框中所选的语言。

这是我的 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>

点击标签而不是 select 框时有效。标记中使用的 onChange 事件不起作用。我应该如何解决这个问题?

您正在使用 select 列表。获得价值有点复杂。 一个 select 列表有很多 options。选项是 onchange 事件中 this 对象下的一个数组。

当前 selected 索引存储在 this.selectedIndex

因此,要获得一个值,您需要通过 selected 值

访问数组中的正确选项
this.options[this.selectedIndex].value

是从 select 列表中获取值的方式。

要修复您的代码,您应该使用而不是

<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">

试试这个

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