Отключите кнопку 'X' в верхнем правом из Диалогового окна [дубликат]

Возможный дубликат:
Удалить близкую кнопку на jQueryUI Диалоговом окне?

Я пытаюсь сделать диалоговое окно, которое требует, чтобы пользователь согласился на условия перед продолжением и не хочет позволять пользователю просто нажимать 'X' в правом верхнем углу диалогового окна для закрытия. Я хотел бы потребовать, чтобы пользователь нажал 'I agree'.

Там какой-либо путь состоит в том, чтобы отключить 'X' в диалоговом окне?

Разъяснение: я просто использую стандартный jQuery диалоговое окно UI: $ .dialog ().

40
задан Community 23 May 2017 в 12:02
поделиться

4 ответа

Я предполагаю, что вы используете jQuery ui.

Если так, присоедините обработчик событий BeForeClose и верните false от него, если кнопка согласия не была нажата. Вы также можете использовать CSS, чтобы установить кнопку X в {display: none}

var agreed = false; //has to be global
$("something").dialog({
    buttons: {
        'Apply': function () {
            agreed = true;
            $(this).dialog("close");
        }
    },
    beforeClose: function () {
        return agreed;
    }
});
40
ответ дан 27 November 2019 в 01:07
поделиться

Насколько ваша задача запрещает пользователю нажать X, я бы порекомендовал один из нескольких подходов:

  1. Используйте правило CSS для установки дисплея для этой кнопки для «нет '. Используя режим проверки Firebug, вы должны сможете посмотреть на тег, который в диалоговом окне jQuery UI размещается там и добавить правило CSS для него. Если это отображение, нет, пользователь не должен быть в состоянии нажать на него.
  2. Аналогично подключите событие jQuery .Click (), которое ничего не делает, и возвращает false, чтобы остановить распространение события (я никогда не делал этого, но он должен работать).
  3. Вы можете прикрепить функцию к событию BeForeClose () диалогового окна, которое позволит вам предотвратить закрытие диалога, если пользователь не нажимал «Я согласен»
  4. , наиболее сложный все, но полезно, если вы хотите Имейте подобные диалоги или внесите другие функциональные изменения, вы можете подкласс диалогового окна jQuery UI, создав плагин jQuery ui, который внутренне инстанцирует диалоговое окно, затем изменяет поведение по умолчанию, применяя правила CSS или прикрепленные события, как описано выше.

Надеюсь, один из тех, кто выходит в правильное направление ...

3
ответ дан 27 November 2019 в 01:07
поделиться

Ваши предположения неверны. Защищенные и открытые члены «передаются». Частные участники - нет. Насколько мне известно, это характерно для многих языков ООП.

-121--4180445-

Это все объясняется в спецификации

http://www.w3.org/TR/CSS2/visudet.html#blockwidth

O.O

По существу, auto означает, принимая во внимание все остальные указанные набивки, границы и поля, заполнить оставшееся пространство (при условии, что только ширина набора к auto). Так что эффективно 100% минус границы, набивка и поля.

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

-121--2938695-

Если диалоговое окно является обычным, невозможно запретить пользователю закрывать окно.

Можно использовать модальный плагин jQuery, например jqModal .

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


EDIT : При использовании диалогового окна пользовательского интерфейса jQuery можно добавить следующее правило CSS:

#someId .ui-dialog-titlebar-close {
    display: none;
}

Необходимо установить для closeOnEscape значение false .


Также почему вы заставляете пользователя нажать Я согласен ?
Почему нельзя обращаться с закрытым окном так, как если бы вы не согласились?

13
ответ дан 27 November 2019 в 01:07
поделиться

Если вы используете Alert , возможно, вы должны рассмотреть , подтвердите вместо этого:

if (!confirm("Click OK to confirm that you agree to the terms and conditions.")) {
    // they didn't click OK
} else {
    // they did.
}

или, используйте плагин Как упомянул слакс

1
ответ дан 27 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

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