Javascript FireFox DON';T从jQuery脚本取消表单提交
我有这种情况:Javascript FireFox DON';T从jQuery脚本取消表单提交,javascript,jquery,firefox,jqmodal,Javascript,Jquery,Firefox,Jqmodal,我有这种情况: <form class="reqSnip" action="snipvw" method="post" target="_blank"> <input type="hidden" name="a_snip" value="0"> <input type="hidden" name="b_snip" value="1"> <input type="hidden" name="fullDoc" value="true"
<form class="reqSnip" action="snipvw" method="post" target="_blank">
<input type="hidden" name="a_snip" value="0">
<input type="hidden" name="b_snip" value="1">
<input type="hidden" name="fullDoc" value="true">
<button type="submit" class="getFullSnippet"></button>
</form>
要使图片清晰,请执行以下操作:
- //1-在网页上打开一些“弹出式”窗口
- //2-取消表格提交。我这样做,因为表格只是要求一些 Ajax信息,不得执行标准表单提交。为了我的 你可以这样想,因为我只是不想提交表格 但是,所有Ajax内容都与问题无关
- 在IE7/8/9/Chrome/Opera中——一切如期,弹出窗口打开,表单不显示 提交
- 在FireFox中(WindowsXPSP3上的8.0.1版)-弹出窗口打开并从DO 已提交(以便在浏览器中显示新选项卡)
- IE7/8/9/Chrome/Opera-在第//行中点击BP,然后在第//行中点击BP
- FireFox-在第//1行中点击BP,而在第//2行中从未点击BP,所以 命令“return false”从未执行过:(
- jQuery-你知道的:)
- 来自jqModal的jqmShow命令,这是jQuery的插件。它是 主页:
var myOpen=function(hash){ hash.w.css('opacity',0.88).show(); };
$('#dialog').jqm({onShow:myOpen});
....
$('#dialog').jqmShow();
我写的代码与此非常接近。
所有浏览器都接受这种方法。FF“不喜欢”它。不知道为什么。所以,为了解决我的问题,不必绑定到onShow事件就足够了。就是这样 试试这个:
jQuery('.reqSnip').submit(function(e) {
jQuery('#snipDIV').jqmShow(); // 1
e.preventDefault(); // 2
});
试试这个:
jQuery('.reqSnip').submit(function(e) {
jQuery('#snipDIV').jqmShow(); // 1
e.preventDefault(); // 2
});
这在FF8中适用于我。您是否尝试过清除浏览器缓存并确保运行的是您认为正在运行的代码,而不是旧版本?我非常确定我尝试执行的代码与我的开始消息中的代码完全相同,因为Firebug for FF向我显示了浏览器从服务器(或缓存,如您所述)获取的javascript代码行. 表单的HTML代码也是如此。我直接从Firebug复制了这两个代码片段。因此,可以消除错误/不准确/过时和其他类似的原因。如果第1行被命中,而第2行未被命中,则通常意味着第1行抛出了异常。它抛出了什么异常?这在FF8中对我有效。您是否尝试过清除浏览器缓存并确保运行的是您认为正在运行的代码,而不是旧版本?我非常确定我尝试执行的代码与我的开始消息中的代码完全相同,因为Firebug for FF向我显示了浏览器从服务器(或缓存,如您所述)获取的javascript代码行. 表单的HTML代码也是如此。我直接从Firebug复制了这两个代码片段。因此,可以消除错误/不准确/过时和其他类似的原因。如果第1行被命中,而第2行未被命中,则通常意味着第1行抛出了异常。它抛出了什么异常?我尝试你的建议(谢谢!)。恐怕不行(第//2行在控制流中仍然没有命中,所以表单继续提交。我尝试了您的建议(谢谢!)。恐怕不行。:(第//2行在控制流中仍然没有命中,所以表单继续提交。)。