2016-12-06 2 views
0

Есть ли простой способ заставить пользователя перейти по URL-адресу из выпадающего списка в SUBMIT, а не onChange.Выпадающая форма выбора, перейдите на URL-адрес в поле SUBMIT

У меня есть этот код:

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

Пробовал изменения OnChange в onSubmit, но он не работает.

+0

a select не имеет представления даже. Отправить мероприятие с формой. – 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

Вы можете использовать onsubmit событие на <form> элемента, но вы хотите, чтобы preventDefault на мероприятии, а также для onsubmit случае необходимо использовать return:

<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-адреса. то есть domain.com?menu=http%3A%2F%2Fdomain-one.com .. вместо того, чтобы сразу перейти к URL-адресу. – Sam

+0

Я обновил свой ответ, чтобы исправить эту проблему - нужно использовать ключевое слово 'return' и предотвратитьDefault в событии – hackerrdave