0

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

但这也不起作用。

任何人都看到问题是什么?谢谢。

4

7 回答 7

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/";
    }
  }
于 2012-07-19T20:05:27.197 回答
3

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

var val = ​document.getElementsByName("destination")​​​​​[0].value
于 2012-07-19T20:00:58.340 回答
0

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

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

这将检索所选选项的值。

于 2012-07-19T20:00:38.413 回答
0

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

window.location.href = 'URL';
于 2012-07-19T20:01:04.363 回答
0

请执行下列操作

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

你的 JavaScript

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

把一个alert(val)在你的if,看看是否曾经评估为真

于 2012-07-19T20:01:51.437 回答
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();" />
于 2012-07-19T20:06:09.503 回答
0

用一点 jquery 试试这个

使用下拉重定向

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

​</p>

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

   if (val == "deprecated"){
     window.location="http://website.com/";
   }
});
于 2012-07-19T20:19:01.567 回答