尝试使用javascript重定向

时间:2012-07-19 19:56:35

标签: javascript html redirect

我是javascript的新手,我正在尝试根据输入的类型发生不同的事件。我的html标题中有以下内容:

<script type="text/javascript">
    function validateForm(){
    var val=document.getElementsByName("destination");
    if (val == "deprecated"){
      window.location="http://website.com/";
    }
  }
</script>

然后在身体中,我有以下内容:

<select name="destination">
<option value="current_builds">Current Builds</option>
<option value="deprecated">Deprecated Files</option>
<option value="mailing_list">Mailing List</option>
</select><br/>
<input type="button" value="next >" onClick="validateForm()" />

然而,这没有做任何事情。它只是停留在同一页面上。我还尝试将其包装在表单标签中,然后说:

<form name="my_form" onSubmit="validateForm()">
...
</form>

然后匹配javascript:

var val = document.forms["my_form"]["destination"].value 

但这也不起作用。

任何人都能看到问题所在? 感谢。

7 个答案:

答案 0 :(得分:4)

我修复了你的功能并进行了测试:

function validateForm(){
    var val=document.getElementsByName("destination");
    var theSelectedOption = val[0].options[val[0].selectedIndex].value;
    if (theSelectedOption == "deprecated"){
      window.location="http://website.com/";
    }
  }

答案 1 :(得分:3)

您需要从所选元素中获取值。由于document.getElementsByName返回一个数组,请尝试使用此

var val = ​document.getElementsByName("destination")​​​​​[0].value

答案 2 :(得分:0)

您需要从所选选项中获取值。像这样:

var index = document.getElementsByName("destination").selectedIndex; 
var val=document.getElementsByName("destination").options[index].value;

这将检索所选选项的值。

答案 3 :(得分:0)

您缺少href属性,您想使用:

window.location.href = 'URL';

答案 4 :(得分:0)

执行以下操作

<select name="destination" id="destination">

您的JavaScript

val=document.getElementsById("destination").value;

alert(val)中添加if以查看是否评估为真

答案 5 :(得分:0)

尝试使用id而不是name,id是一个独特的元素。 Javascript支持

var destination = document.getElementById("destination");
if (destination.options[destination.selectedIndex].value == "deprecated"){
  window.location="http://website.com/";
}

<强> HTML

<select id="destination">
    <option value="current_builds">Current Builds</option>
    <option value="deprecated">Deprecated Files</option>
    <option value="mailing_list">Mailing List</option>
</select>
<br />
<input type="button" value="next &gt;" onclick="javascript:validateForm();" />

答案 6 :(得分:0)

尝试使用一点点jquery

Redirect using drop down

<form name="my_form">
  <select id="destination">
    <option value="current_builds">Current Builds</option>
    <option value="deprecated">Deprecated Files</option>
    <option value="mailing_list">Mailing List</option>
  </select><br/>
  <input type="button" value="next >" id="submit">
</form>

$('#submit').click(
   function validateForm(){
   var e = document.getElementById("destination");
   var val = e.options[e.selectedIndex].value;

   if (val == "deprecated"){
     window.location="http://website.com/";
   }
});