我有以下表格选择:
<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
答案 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();
的原因是为了阻止默认表单提交并执行我们提供的操作。即重定向。到选定的网址。