Javascript off()不在firefox中工作,但在chrome中工作
我正在使用Javascript off()不在firefox中工作,但在chrome中工作,javascript,php,jquery,Javascript,Php,Jquery,我正在使用beforeonload函数,但我希望当用户提交表单时beforeonload不起作用。这是我的代码,它在Chrome中运行良好,但在Firefox中不起作用 window.form_submitted = ''; jQuery(document).ready(function() { jQuery(window).on('beforeunload', function() { if (form_submitted == '') {
beforeonload
函数,但我希望当用户提交表单时beforeonload
不起作用。这是我的代码,它在Chrome中运行良好,但在Firefox中不起作用
window.form_submitted = '';
jQuery(document).ready(function() {
jQuery(window).on('beforeunload', function() {
if (form_submitted == '') {
return "Are you sure to leave that page";
}
});
});
jQuery('#form').on('submit', function (e) {
e.preventDefault();
jQuery(window).off('beforeunload');
form_submitted = 1;
site_redirect(resp.payment_url);
}
return false;
});
您有几个语法问题,必须将
submit
块放在DOMReady处理程序中,否则JS将尝试将事件绑定到DOM中尚不存在的元素。另请注意,在表单提交时解除beforeunload
事件的绑定时,可以删除全局标志变量。试试这个:
jQuery(document).ready(function($) {
$(window).on('beforeunload', function() {
return "Are you sure to leave that page";
});
$('#form').on('submit', function (e) {
e.preventDefault();
$(window).off('beforeunload');
site_redirect(resp.payment_url);
});
});
还请注意,如果在表单提交时执行重定向(假设这是
站点重定向
函数所做的),那么表单的内容将丢失。您有几个语法问题,必须将提交
块放在DOMReady处理程序中,否则JS将尝试将事件绑定到DOM中尚不存在的元素。另请注意,在表单提交时解除beforeunload
事件的绑定时,可以删除全局标志变量。试试这个:
jQuery(document).ready(function($) {
$(window).on('beforeunload', function() {
return "Are you sure to leave that page";
});
$('#form').on('submit', function (e) {
e.preventDefault();
$(window).off('beforeunload');
site_redirect(resp.payment_url);
});
});
还请注意,如果在表单提交时执行重定向(假设这是
站点的重定向功能所做的),那么表单的内容将丢失。那么您需要提供更多信息。“那不管用”对我没有帮助。您是否使用断点调试了代码?是否调用了事件处理程序?site\u重定向
做什么?为什么提交了表单
并清空了sting,然后设置为1
?为什么要同时使用表单_submitted
和.off()
?那么您需要提供更多信息。“那不管用”对我没有帮助。您是否使用断点调试了代码?是否调用了事件处理程序?site\u重定向
做什么?为什么提交了表单
并清空了sting,然后设置为1
?为什么要同时使用表单_submitted
和.off()
?