Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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/2/batch-file/6.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
如何在链接click事件jquery中调用onbeforeunload?_Jquery - Fatal编程技术网

如何在链接click事件jquery中调用onbeforeunload?

如何在链接click事件jquery中调用onbeforeunload?,jquery,Jquery,我有带文本框的div标签,在div I外有一个链接按钮。*Im使用dataTable js并添加自定义列作为“编辑”链接,其href=“#” 如果im在没有输入任何数据的情况下单击链接,则意味着它不应调用onbeforeunload函数 在文本框中输入任何数据后,在单击保存之前,如果im单击链接,则意味着它应该调用onbeforeunload函数。并且必须显示类似“您尚未保存更改”的消息 说明 $('#inputform')。打开('change keypup keypdown','input

我有带文本框的div标签,在div I外有一个链接按钮。*Im使用dataTable js并添加自定义列作为“编辑”链接,其href=“#”

  • 如果im在没有输入任何数据的情况下单击链接,则意味着它不应调用onbeforeunload函数

  • 在文本框中输入任何数据后,在单击保存之前,如果im单击链接,则意味着它应该调用onbeforeunload函数。并且必须显示类似“您尚未保存更改”的消息

  • 说明
    
    $('#inputform')。打开('change keypup keypdown','input,textarea,select',函数(e){
    $(this.addClass('changed-input');
    });
    $(窗口).on('beforeunload',函数(){
    如果($('.changed input').length){
    return“您尚未保存更改”;
    }
    });
    

    使用变量ie
    saved
    跟踪是否单击了save按钮。您可以在卸载事件中对此进行检查:


    我正在使用datatable js。。我正在添加自定义列。。编辑链接。。。。这一次,它对meI不起作用,因为它需要对link的href=“#”起作用的东西。。。这是我的问题。。。。请参阅更新的答案。要做到这一点,您可以单击所有具有href的锚。
    var saved = true;
    
    $(function () {
        $('input[type=submit]').click(function () {
            // do the saving...
            saved = true;
        });
    
        $('#inputform').on('change keyup keydown', 'input, textarea, select', function (e) {
            $(this).addClass('changed-input');
            saved = false;
        });
    
        $(window).on('beforeunload', function () {
            if (!saved) {
                if ($('.changed-input').length) {
                    return 'You haven\'t saved your changes.';
                }
            }
        });
        $(document).on('click', 'a[href]', function () {
            if (!saved) {
                if ($('.changed-input').length) {
                    return confirm('You haven\'t saved your changes.');
                }
            }
        });
    })