2016-12-06 5 views
0

ユーザーがonChangeではなくSUBMITのドロップダウンリストからURLに移動する簡単な方法はありますか?ドロップダウン選択フォーム、URLに移動

私はこのコードを持っている:

<form name="cityselect"> 
<select name="menu" onChange="top.location.href=this.options[this.selectedIndex].value;" value="GO"> 
<option selected="selected">Select One</option> 
<option value="http://www.domain-one.com">London</option> 
<option value="http://www.domain-two.com">Glasgow</option> 
</select> 

はをonSubmitへのonChangeを変更しようとしましたが、それは動作しません。

+0

選択には送信偶数がありません。送信イベントはフォームで行います。 – Manish

答えて

0

代わりにこれを試してみてください。

また、JavaScriptをHTMLと分離しておきたい場合があります。 onchangeまたは類似のHTML属性を使用しないでください。それは技術的に間違っていませんが、コード品質/保守性の観点からは悪いです。

var goBtn = document.getElementById("goBtn"); 
 
var menu = document.getElementById("menu"); 
 

 
goBtn.onclick = function() { 
 
    window.location = menu.value; 
 
}
<select id="menu"> 
 
    <option selected="selected">Select One</option> 
 
    <option value="http://www.domain-one.com">London</option> 
 
    <option value="http://www.domain-two.com">Glasgow</option> 
 
</select> 
 
<input type="button" id="goBtn" value="GO!">

あなたのためにこの仕事をしていますか?

+1

夢のように動作します!ありがとうございました:) – Sam

+0

問題はありません、喜んで助けてください! :) – Andrew

0

あなたは<form>要素にonsubmitイベントを使用できますが、イベントでpreventDefaultをしたいと思う、とあなたはreturnを使用する必要がonsubmitイベントのために:

<form name="cityselect" onsubmit="return redirectTo(this)"> 
    <select name="menu" value="GO"> 
    <option selected="selected">Select One</option> 
    <option value="http://www.domain-one.com">London</option> 
    <option value="http://www.domain-two.com">Glasgow</option> 
    </select> 
</form> 

<script> 
    function redirectTo(elem) { 
    event.preventDefault(); 
    top.location.href = elem.firstElementChild.options[elem.firstElementChild.selectedIndex].value 
    } 
</script> 
+0

これを試しましたが、その前に?メニューを付けてURLの末尾にURLを追加します。 URLに直接行くのではなく、domain.com?menu=http%3A%2F%2Fdomain-one.com .. – Sam

+0

私はこの問題を解決するために私の答えを更新しました - イベントで 'return'キーワードとpreventDefaultを使用する必要があります – hackerrdave

関連する問題