Я пытаюсь использовать JQuery UI Dialog, чтобы заменить уродливое javascript:alert()
поле. В моем сценарии у меня есть список элементов, и рядом с каждым из них у меня будет кнопка «удалить» для каждого из них. настройка psuedo html будет выглядеть следующим образом:
<ul>
<li>ITEM <a href="url/to/remove"> <span>$itemId</span>
<li>ITEM <a href="url/to/remove"><span>$itemId</span>
<li>ITEM <a href="url/to/remove"><span>$itemId</span>
</ul>
<div id="confirmDialog">Are you sure?</div>
В части JQ, когда документ готов, я сначала настроил бы div на модальное диалоговое окно с необходимой кнопкой, а затем установил те «a», чтобы вызвать подтверждение перед удалением, например:
$("ul li a").click(function() {
// Show the dialog
return false; // to prevent the browser actually following the links!
}
ОК, вот в чем проблема. во время инициализации диалог не будет знать, кто (элемент) запустит его, а также идентификатор элемента (!). Как я могу настроить поведение этих кнопок подтверждения, чтобы, если пользователь все еще выбирал ДА, он перешел по ссылке, чтобы удалить его?
Ответы:
Я просто должен был решить ту же проблему. Ключом к тому, чтобы заставить это работать, было то, что он
dialog
должен быть частично инициализирован вclick
обработчике событий для ссылки, с которой вы хотите использовать функцию подтверждения (если вы хотите использовать это для более чем одной ссылки). Это связано с тем, что целевой URL для ссылки должен быть вставлен в обработчик событий для нажатия кнопки подтверждения. Я использовал класс CSS, чтобы указать, какие ссылки должны иметь подтверждающее поведение.Вот мое решение, абстрагированное, чтобы подойти для примера.
Я считаю, что это будет работать для вас, если вы можете создавать свои ссылки с помощью класса CSS (
confirmLink
в моем примере).Вот jsfiddle с кодом в нем.
В интересах полного раскрытия я отмечу, что я потратил несколько минут на эту конкретную проблему, и я дал аналогичный ответ на этот вопрос , который также был без принятого ответа в то время.
источник
Я обнаружил, что ответ Пола не совсем сработал, поскольку способ, которым он устанавливал параметры ПОСЛЕ диалогового окна при событии click, был неверным. Вот мой код, который работал. Я не адаптировал его под пример Пола, но разница только в том, что некоторые элементы названы по-разному. Вы должны быть в состоянии решить это. Коррекция находится в установщике опции диалога для кнопок на событии щелчка.
Надеюсь, что это поможет кому-то еще, так как этот пост изначально помог мне выбрать правильный путь, я подумал, что лучше опубликовать исправление.
источник
on
вместоclick
, так как это будет продолжать работать, если (например) поле будет перерисовано с использованием jQuery - api.jquery.com/onЯ создал свою собственную функцию для диалога подтверждения пользовательского интерфейса jquery. Вот код
Теперь, чтобы использовать это в своем коде, просто напишите следующее
Продолжай.
источник
Простое и короткое решение, которое я только что попробовал, и оно работает
тогда просто добавьте class = "подтвердите" к вашей ссылке, и это работает!
источник
Это моё решение .. надеюсь, оно кому-нибудь поможет. Она написана на лету, а не копировалась, так что прости меня за любые ошибки.
Лично я предпочитаю это решение :)
редактировать: извините .. я действительно должен был объяснить это более подробно. Мне это нравится, потому что, на мой взгляд, это элегантное решение. Когда пользователь нажимает кнопку, которая должна быть подтверждена первой, событие отменяется, как и должно быть. Когда нажата кнопка подтверждения, решение состоит не в том, чтобы смоделировать щелчок по ссылке, а в том, чтобы вызвать то же самое собственное событие jquery (щелчок) для исходной кнопки, которая сработала бы, если бы не было диалогового окна подтверждения. Единственным отличием является другое пространство имен событий (в данном случае «подтверждено»), поэтому диалоговое окно подтверждения больше не отображается. Собственный механизм Jquery может затем вступить во владение, и все может работать как ожидалось. Еще одним преимуществом является то, что он может быть использован для кнопок и гиперссылок. Я надеюсь, что я был достаточно ясен.
источник
$("#btn").trigger("click.confirmed");
Я знаю, что это старый вопрос, но вот мое решение с использованием атрибутов данных HTML5 в MVC4:
JS код:
источник
Будет ли это делать?
источник
Как указано выше. Предыдущие посты вывели меня на правильный путь. Вот как я это сделал. Идея состоит в том, чтобы рядом с каждой строкой таблицы было изображение (генерируемое скриптом PHP из базы данных). При нажатии на изображение пользователь перенаправляется на URL-адрес, и в результате соответствующая запись удаляется из базы данных, показывая некоторые данные, относящиеся к нажатой записи, в диалоге пользовательского интерфейса jQuery.
Код JavaScript:
Диалог div:
Ссылка на изображение:
Таким образом, вы можете передать значения цикла PHP в диалоговое окно. Единственным недостатком является использование метода GET для фактического выполнения действия.
источник
Как насчет этого:
Я проверил это в этом HTML:
Он удаляет весь элемент li, вы можете адаптировать его под свои нужды.
источник
(По состоянию на 22.03.2016 загрузка на странице, на которую указывает ссылка, не работает. Я оставляю ссылку здесь на случай, если разработчик исправит ее в какой-то момент, потому что это отличный маленький плагин. Оригинальный пост следует. альтернатива, и ссылка, которая действительно работает: jquery.confirm .)
Это может быть слишком просто для ваших нужд, но вы можете попробовать этот плагин подтверждения jQuery . Он действительно прост в использовании и выполняет свою работу во многих случаях.
источник
Как бы мне не хотелось использовать eval, мне показалось, что это самый простой способ, не вызывающий много проблем в зависимости от различных обстоятельств. Похоже на функцию времени ожидания javascript.
источник
Я сам столкнулся с этим и получил решение, которое похоже на несколько ответов, но реализовано несколько иначе. Мне не нравилось много кусочков JavaScript или местный тег div. Я хотел обобщенное решение, которое затем можно было бы использовать в HTML без добавления JavaScript для каждого использования. Вот что я придумал (для этого требуется jquery ui):
Javascript:
Кроме того, в HTML не требуется никаких вызовов или ссылок на JavaScript:
Поскольку атрибут title используется для содержимого div, пользователь может даже получить вопрос подтверждения, наведя курсор на кнопку (именно поэтому я не использовал атрибут title для плитки). Заголовок окна подтверждения является содержимым тега alt. Фрагмент javascript можно включить в обобщенный файл .js, и просто применив класс, у вас появится симпатичное окно подтверждения.
источник
источник
ПРИМЕЧАНИЕ. Недостаточно повторений, чтобы комментировать, но ответ BineG отлично подходит для решения проблем обратной передачи на страницах ASPX, как это подчеркивали Гомер и Эхо. В честь, вот вариант с использованием динамического диалога.
источник
Другой вариант вышеупомянутого, где он проверяет, является ли элемент управления «asp: linkbutton» или «asp: button», который визуализируется как два разных html-элемента управления. Кажется, работает хорошо для меня, но не проверял это экстенсивно.
источник
Я искал это для использования на кнопках ссылок в ASP.NET Gridview (сборка элемента управления GridView в командах). Поэтому действие «Подтвердить» в диалоговом окне должно активировать сценарий, сгенерированный элементом управления Gridview во время выполнения. это сработало для меня:
источник
var inlineFunction = $(this).attr("href") + ";"; /* ... */ eval(inlineFunction);
это не имеет никакого смысла!Я знаю, что этот вопрос старый, но я впервые использовал диалог подтверждения. Я думаю, что это самый короткий способ сделать это.
Я надеюсь тебе это понравится :)
источник
Лично я вижу это как повторяющееся требование во многих представлениях многих приложений ASP.Net MVC.
Вот почему я определил класс модели и частичное представление:
И мой частичный взгляд:
И затем, каждый раз, когда вам это нужно в представлении, вы просто используете @ Html.Partial (он делал это в скриптах разделов, чтобы определить JQuery):
Хитрость заключается в том, чтобы указать JQueryClickSelector, который будет соответствовать элементам, для которых требуется диалог подтверждения. В моем случае все якоря с классом SyLinkDelete, но это может быть идентификатор, другой класс и т. Д. Для меня это был список:
источник
Очень популярная тема, и Google находит это для запроса "jquery диалог закрыть, какое событие было нажато". Мое решение правильно обрабатывает события YES, NO, ESC_KEY, X. Я хочу, чтобы моя функция обратного вызова вызывалась независимо от расположения диалога.
Легко перенаправить браузер на новый URL-адрес или выполнить что-то еще в функции retval.
источник
Здесь так много хороших ответов;) Вот мой подход. Похоже на использование eval ().
И использование выглядит так:
источник
Из коробки пользовательский интерфейс JQuery предлагает следующее решение:
HTML
Вы можете дополнительно настроить его, указав имя для функции JQuery и передав текст / заголовок, который вы хотите отобразить в качестве параметра.
Ссылка: https://jqueryui.com/dialog/#modal-confirmation
источник
Ну, это ответ на ваши вопросы ...
убедитесь, что у вас есть jquery 1.4.4 и jquery.ui
источник
LANGUAGE="JavaScript"
), смешанные прописные и строчные символы, совершенно без необходимости смешиваете простые JS-коды с jQuery-кодами и устанавливаете стили с помощью JS вместо CSS (некрасиво и семантически неверно), и, кстати, ваш стиль модификация (с простым JS) абсолютно не имеет отношения к исходному вопросу. Вы должны определенно сократить и украсить свой код и сосредоточиться на ответе на оригинальный вопрос.Простой способ с оттенком JavaScript
источник