0

我有以下代码用于 Yii 框架来删除一个寄存器。此代码是自动生成的,我想捕获它是否在对话框打开时提交。如果 ajax 完成,我将保存在我的用户日志中。

jQuery(function($) {
    jQuery('body').on('click','#yt0', function(){
        if (confirm('Want to delete it?')) {
            jQuery.yii.submitForm(this,'/yiiProject/index.php?r=project/delete&id=168',{});
            return false;
        } 
        else 
            return false;
    });

    jQuery('body').tooltip({'selector':'a[rel=tooltip]'});
    jQuery('body').popover({'selector':'a[rel=popover]'});
});
4

2 回答 2

1

据我所知,您可以做的大多数事情是覆盖该confirm方法并在用户单击“确定”时处理这种情况:

var originalConfirm = window.confirm;
window.confirm = function(msg) {
    if (originalConfirm(msg)) {
        //log...
        return true;
    }
    return false;
};

你也可以通过自己提交 AJAX 然后总是返回 false 来完全覆盖 Yii 自动生成的代码:

if (originalConfirm(msg)) {
    $.post("/yiiProject/index.php?r=project/delete&id=168", function() {
        //success, write to log...
    });
    return false;
}
于 2013-09-16T13:12:19.963 回答
0

尝试使用全局 ajax 事件:

http://api.jquery.com/ajaxSuccess/

$( document ).ajaxSuccess(function( event, xhr, settings ) {
    if ( settings.url == "ajax/test.html" ) {
        $( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +
        xhr.responseText );
    }
});
于 2013-09-17T08:56:15.573 回答