我有一个简单的表单,可以通过一个小的jQuery脚本在元素外部提交。
<script type="text/javascript">
$(document).ready(function() {
$('#mybutton').click(function(){
$('#myform').attr('action', '/url/to/form').submit();
});
});
</script>
该按钮只是一个普通链接
<a href="javascript:void(0);" id="mybutton">Just a normal link</a>
表格只是一种正常形式
<form id="myform" action="/url/to/form">
....
<input type="submit" value="Search">
</form>
这适用于IE,FF,Chrome和Safari,但不适用于Opera。在Opera中,它总是重定向到我的主页,而不是重定向到表单操作的URL。我已经尝试在脚本中设置动作(如上所述),通常在表单动作参数中但没有运气。我正在运行最新的jQuery和Opera。
请帮忙
编辑:我也在使用jQuery UI框架来处理一些内容和交互
答案 0 :(得分:1)
我要做的第一件事是更改处理程序以防止链接的默认操作:
$('#mybutton').click(function(ev){
ev.preventDefault();
$('#myform').attr('action', '/url/to/form').submit();
});
对按钮使用<a>
标记意味着您必须小心浏览器不要对语义感到困惑。我没有很多在Opera上调试的经验,但这是我怀疑的第一件事。
如果没有与“按钮”关联的真正“href”,我会质疑它为什么是<a>
标签;它可能只是一个简单的<span>
,它也可以附加一个点击处理程序,但它没有任何可能有问题的原生行为。
答案 1 :(得分:0)
只需 $('#myform').submit();
代替$('#myform').attr('action', '/url/to/form').submit();
编辑:正如另一个答案所说,在点击事件之前,您首先必须致电event.preventDefault();
,因为这会阻止浏览器重定向您。
Edit2:正确的代码是:
<script type="text/javascript">
$(document).ready(function() {
$('#mybutton').click(function(event){
event.preventDefault();
$('#myform').attr('action', '/url/to/form').submit();
});
});
这应该可以正常工作。
答案 2 :(得分:0)
我相信它会与当前不完整的jquery ui select class有关。它添加了一个带有href的标签,因为#i相信这可能是你的问题。