SimpleModal подтверждают перед заключительным диалоговым окном

Я использую SimpleModal (http://www.ericmmartin.com/projects/simplemodal/), и у меня есть форма, которая отображается в диалоговом окне. То, что я хочу сделать, смочь иметь подтверждение, подходят каждый раз, когда пользователь пытается закрыть диалоговое окно (или Escape или нажатием на близкий значок) и спрашивает их, если они действительно хотят закрыть его, не сохраняя данные формы. Я попробовал следующее:

onClose: function (dialog) {
    if (confirm('Are you sure you want to close without saving?')) {
        $.modal.close();
    }
}

Но это только инициировало однажды. Если Вы совершаете нападки, отмене затем не удается закрыться снова позже, который отчасти имеет смысл. У кого-либо есть предложение или решение? Любая справка значительно ценилась бы.:)

5
задан 10 January 2010 в 21:48
поделиться

3 ответа

Я также смотрел на источник и когда включен Событие выполняется olcb флаг флаг.

Что вы можете попробовать (я не пробовал) - это переопределить это octb , поскольку он передается в это , переменной:

onClose: function (dialog) {
    if (confirm('Are you sure you want to close without saving?')) {
        $.modal.close();
    }else{
        this.occb = false;
    }
}

Надеюсь, это поможет.

0
ответ дан 13 December 2019 в 05:36
поделиться

Я посмотрел на источник Simplemodal для вас и то, что вы хотите сделать, не может быть сделано с их кодом. Вот почему:

просто до вызова вашего пользовательского обратного вызова OnClose это называет следующим образом:

s.unbindEvents();

, которые эффективно говорит: «Этот ящик собирается закрыть, нравится вам это или нет». Это не как обычный обратный вызов, который вы можете отменить.

Я бы порекомендовал вместо этого, используя диалоговое окно jQuery UI Dialog , который вы должны найти Super легко для реализации этой функциональности, используя их BEFORECLOSE обратного вызова. Вы просто использовали бы:

beforeclose: function(){ 
    return confirm('Are you sure you want to close without saving?')
}
8
ответ дан 13 December 2019 в 05:36
поделиться

Я получил эту работу, используя вроде того, что пытался jerone, но также повторно связывал события:

onClose: function (dialog) {
    if (confirm('Are you sure you want to close without saving?')) {
        $.modal.close();
    }else{
        this.occb = false;
        this.bindEvents();
    }
}

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

4
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: