Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript off()不在firefox中工作,但在chrome中工作_Javascript_Php_Jquery - Fatal编程技术网

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()