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

名前の代わりに ID を使用してみてください。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

選択したオプションから値を取得する必要があります。そのようです:

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;

を入れて、true と評価されるかどうかを確認しalert(val)ますif

于 2012-07-19T20:01:51.437 に答える
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 に答える