Событие открытия диалога не срабатывает - PullRequest
0 голосов
/ 05 сентября 2018

Диалоговое окно открывается с правильным заголовком и текстом, и когда диалоговое окно закрывается, функция clrflds () успешно вызывается. Однако при открытии диалога функция dialog_close () никогда не вызывается. Я перепробовал все, что могу найти в Интернете, чтобы решить эту проблему, и у меня все еще есть проблема. Заранее спасибо за помощь с этим

                            var returned = data;
                            if (returned == 0) {
                                $("#dialog_text").text("Login Failed"); 
                                $("#dialog_login").dialog({autoOpen: false});
                                $("#dialog_login").dialog({
                                                    title: "Login Status",
                                                    open: function(){
                                                        dialog_close()
                                                        },
                                                    close: function(){
                                                        clrflds()
                                                        }
                                                    });                                                                 
                                $("#dialog_login").dialog("open");                  
                                //alert('Failed');;         
                            }
                            else if (returned == 1) {
                                $('#login').load('m_insp_grid.html');
                            }                               
                        }
            },
        error: function(xhr, status, error){
            alert(error);
        }
    }); 
} 

function dialog_close(){
    setTimeout(function(){$("#dialog_login").dialog("close");}, 3000);
    }

function clrflds(){
    $("#dept_id").val("");
    $("#username").val("");
    $("#pwd").val("");
}

1 Ответ

0 голосов
/ 05 сентября 2018

Это потому, что вы находитесь в другом контексте, из-за функции () {...}.

Полагаю, если вы пишете console.log или предупреждение вместо dialog_close (); это называется правильно?

Попробуйте написать:

open: () => {
    dialog_close()
},

Или

var that = this;
open: function() {
    that.dialog_close()
}

Также см. Здесь: https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...