我有2个单独的下拉菜单。 我想使用JavaScript在下拉列表选择时更改URL。 它几乎可以正常工作,因为我传递了一个值,但我仍然在URL窗口中得到一个“未定义”。 代码如下:
JavaScript的:
function callDDfunction(val) {
alert("The new value is: " + val);
if (this.selectedIndex!==0) {
window.location.href = this.value;
}
};
HTML:
<select onchange="callDDfunction(this.value)">
<option value="">Site Navigation:</option>
<option value="index.php">Home</option>
<option value="register.php">Sign Up</option>
</select>
<select onchange="callDDfunction(this.value)">
<option value="">Seasons Archive:</option>
<option value="/seasons/nba/2012-13/">Season 1: NBA 2012-2013</option>
<option value="/seasons/nba/2013-14/">Season 2: NBA 2013-2014</option>
</select>
答案 0 :(得分:3)
在您的代码this
中引用没有window
属性的value
对象。您将值传递给函数,val
参数是当前值,只需使用它:
window.location.href = val;
如果您想要访问select元素以检查selectedIndex
属性,请传递元素本身而不是它的值:
<select onchange="callDDfunction(this)">
然后你的函数的主体将是:
function callDDfunction(elem) {
alert("The new value is: " + elem.value);
if (elem.selectedIndex !== 0) {
window.location.href = elem.value;
}
};
答案 1 :(得分:0)
使用this.val()
代替this.value