捕获Jquery UI对话框事件

时间:2016-11-22 13:41:02

标签: javascript jquery html jquery-ui

我正在进行ajax调用。在那个ajax调用中,我将json传递给服务器。当用户点击删除按钮时会发生这种情况。因此,在删除之前我正在创建一个Jquery UI对话框。在那,我问用户他是否肯定删除。

现在,我的问题是当用户点击时我无法捕捉到该事件。我在jquery对话框中单击是或否时指定变量ok以具有值。但问题是我在检查是否(ok == 1)在用户点击是或否之前首先调用。因此,无论如何,如果用户单击是或否,则不会发生ajax调用。

该功能都在不同的脚本文件中。

执行ajax调用的函数是 -

$("#delete")
    .click(
        function() {
            var sendData = {};
            deleteClicked = 1;
            var passedJSON = null;
            if (null != selectedRowData) {  // if the id in table is not null
                if (null != selectedRowId) {
                    console.log("ID exists --> " + newId);
                    if (rowclickable == 1 ) {          //checking whether row should be deleted or not
                        var testDate = $("#FromDate").val();
                        sendData["FromDateStr"] = testDate;
                        console.log(sendData);
                        passedJSON = JSON.stringify(sendData);
                        console.log(passedJSON);
                        ok = showModalBoxForDelete(ok);            // calling the modal box and storing the value
                        console.log(ok);
                        if (ok == 1) {
                            $
                                .ajax({
                                    type: "POST",
                                    cache: false,
                                    url: deleteURL,
                                    data: passedJSON,
                                    dataType: "json",
                                    cache: false,
                                    async: "true",
                                    contentType: "application/json",
                                    success: function(
                                        data) {
                                        if (1 == data.responseCode) {

                                            $(
                                                    "#FromDate,delete")
                                                .attr(
                                                    "disabled",
                                                    "disabled");
                                            $("#FromDate").datepicker("disable");
                                            table.ajax.reload(null, false); // To load the table
                                            showModalBoxForSuccessfulUpdate("The Goal is Deleted");
                                        } else {
                                            alert(data.responseMessage);
                                        }
                                    },
                                    error: function(data) {
                                        console.log("Server Failure");
                                    }
                                });
                        }
                    }
                }
            }

调用模态框的函数是 -

function showModalBoxForDelete(ok){
    $("#modelView").dialog({
        autoOpen : false,
        modal : true,
         draggable: false,
        buttons : [ {
            text : "Yes",
            icons : {
                primary : "ui-icon-heart"
            },
            click : function() {
                var ok = 1;
                $(this).dialog("close");
                return ok;
            }
        }, {
            text : "No",
            icons : {
                primary : "ui-icon-heart"
            },
            click : function() {
                $(this).dialog("close");
                console.log("Retaining the page...");               
            }
        } ]
    });
    $("#modelView" ).dialog("open");
    $("#modelView").text("This will delete the goal. Do you still want to continue?");
    return ok;
}

此处检查if (ok == 1)的行导致问题,因为它会在用户点击是或否之前运行。

我无法理解现在该做什么。有人可以帮忙吗?

0 个答案:

没有答案