选择框值为href

时间:2015-08-05 08:21:08

标签: javascript html select href

我在页面中添加多语言功能,但在选择框中遇到问题。我想更改页面上动态显示的语言,以匹配选择框中选定的语言。

这是我的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事件不起作用。我该如何解决这个问题?

2 个答案:

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