onChange不会重定向到URL

时间:2017-05-15 09:18:01

标签: javascript url

我有以下表格选择:

<select name="category" onChange="top.location.href=this.options[this.selectedIndex].value;" onSubmit="top.location.href=this.options[this.selectedIndex].value;"  value="GO">

<input value="Go" type="submit">

与...一起运作

<option value="http://yourdomain.com/?query=&category=jacksonville">Jacksonville</option>

onChange元素工作正常并重定向到正确的URL但是当我单击提交时,重定向不起作用,只是附加到URL的末尾。我试图将这两个事件结合起来,并打破这两个行动。

点击提交时会执行以下操作:

http://www.yourdomain.com/classifieds/?category=http%3A%2F%2Fdomain.com%2F%3Fquery%3D%26category%3Dpanama-city

1 个答案:

答案 0 :(得分:2)

onSubmit属性应该在表单中给出,输入元素上的onChange参见下面的例子,它将对你有用:

<select name="category" onChange="top.location.href=this.options[this.selectedIndex].value;">
<option value="http://yourdomain.com/?query=&category=jacksonville">Jacksonville</option>
<option value="http://google.com">Google</option>
<option value="http://yahoo.com">Yahoo</option>
</select>

以上代码将重定向到onchange event,因此您实际上不需要提交,因为更改页面时已经重定向。

请参阅下面的onSubmit示例:

<form onSubmit="event.preventDefault();top.location.href=document.getElementById('domains').options[document.getElementById('domains').selectedIndex].value;">
<select name="category" id="domains">
<option value="http://yourdomain.com/?query=&category=jacksonville">Jacksonville</option>
<option value="http://google.com">Google</option>
<option value="http://yahoo.com">Yahoo</option>
</select>
<input value="Go" type="submit">
</form>

这里我们重定向表单提交功能。

<强>更新

我们使用event.preventDefault();的原因是为了阻止默认表单提交并执行我们提供的操作。即重定向。到选定的网址。