javascript - jQuery 提交在 Opera 中不起作用

标签 javascript jquery html forms opera

我有一个简单的表单,可以通过一个小的 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。我已经尝试在脚本中设置 Action (如上所述)并且通常在表单 Action 参数中设置但没有运气。我正在运行最新的 jQuery 和 Opera。

请帮忙

编辑:我还使用 jQuery UI 框架来处理一些内容和交互

最佳答案

我要做的第一件事是更改处理程序以防止链接的默认操作:

    $('#mybutton').click(function(ev){
        ev.preventDefault();
        $('#myform').attr('action', '/url/to/form').submit();
    });

使用 <a>按钮标签意味着您必须小心浏览器不会对语义感到困惑。我没有太多在 Opera 上调试东西的经验,但这是我怀疑的第一件事。

如果没有真正的“href”与“按钮”相关联,我会质疑为什么它是 <a>完全标记;它可能只是一个简单的 <span> ,它也可以附加一个点击处理程序,但没有任何可能有问题的 native 行为。

关于javascript - jQuery 提交在 Opera 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742969/

相关文章:

javascript - 使用基于id的Angular JS合并数组中的多个对象

javascript - 特定窗口大小的触发功能

html - CSS 选择最后一个跨度元素

html - Canvas 超出网格布局

javascript - 在对象内部定义的事件监听器

javascript - 找出素因数时得到的结果为未定义

javascript - 防止多次添加可拖动对象 jQuery

javascript - 用于 jQuery append 的 JavaScript 代码串联

jquery - 消除滑动切换时的弹跳球效应

html无法点击复选框