jquery mobile отменить страницу перед выставкой - PullRequest
2 голосов
/ 16 марта 2012

Есть ли в jquery mobile способ отменить показ страницы на событии pagebeforeshow?У меня есть некоторый код проверки прав на странице bebeshow, и я хочу дать пользователю возможность войти на страницу, если разрешение не выполнено.

$("secretpage").live("pagebeforeshow", function () {
  if (permissionNotMet()) {
    stopShowingPage()         //    <---- how?
    $.mobile.changePage("#signin")
  }
})

1 Ответ

0 голосов
/ 16 марта 2012

Это не совсем то, о чем вы просили, но вы можете переработать поток своего кода, чтобы упростить это для себя.

Обработайте отправку формы входа самостоятельно, затем перенаправьте пользователя на нужную страницу, основываясь на ответе сервера:

$(document).delegate('#login', 'pageinit', function () {
    function loginSuccess (serverResponse) {

        $.mobile.hidePageLoadingMsg();

        //here you check the `serverResponse` and direct the user where they need to go
    }
    function loginError (jqXHR, textStatus, errorThrown) {
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
    }
    $(this).find('form').bind('submit', function () {

        $.mobile.showPageLoadingMsg();

        $.ajax({ url : '<url>', data : $(this).serialize(), success : loginSuccess, error : loginError });
        return false;
    });
});

Вам также необходимо добавить data-ajax="false" в качестве атрибута к тегу <form>, чтобы jQuery Mobile не обрабатывал отправку для вас.

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