Я хочу, чтобы эта ссылка имела диалог JavaScript, который спрашивает пользователя: « Вы уверены? Да / Нет ».
<a href="delete.php?id=22">Link</a>
Если пользователь нажимает «Да», ссылка должна загрузиться, если «Нет», ничего не произойдет.
Я знаю, как сделать это в формах, используя onclick
функцию, которая возвращает true
или false
. Но как мне сделать это с помощью <a>
ссылки?
javascript
html
dom-events
Кристоффер
источник
источник
Ответы:
Встроенный обработчик событий
Наиболее простым способом вы можете использовать
confirm()
функцию в встроенномonclick
обработчике.Расширенная обработка событий
Но обычно вы хотели бы разделить ваш HTML и Javascript , поэтому я предлагаю вам не использовать встроенные обработчики событий, а поместить класс в вашу ссылку и добавить в нее прослушиватель событий.
Этот пример будет работать только в современных браузерах (для старых ИЭ вы можете использовать
attachEvent()
,returnValue
и обеспечить реализациюgetElementsByClassName()
или использовать библиотеку как JQuery , который поможет с кросс-браузерные проблемы). Вы можете прочитать больше об этом расширенном методе обработки событий на MDN .JQuery
Я хотел бы держаться подальше от того, чтобы меня считали фанатом jQuery, но манипулирование DOM и обработка событий - это две области, в которых это больше всего помогает при различиях в браузерах. Просто для забавы, вот как это будет выглядеть с jQuery :
источник
confirm(…)
встроенного обработчика. Я не мог воспроизвести это.Я бы рекомендовал избегать встроенного JavaScript:
JS Fiddle demo .
Выше обновлено, чтобы уменьшить пространство, сохраняя ясность / функцию:
JS Fiddle demo .
Несколько запоздалое обновление, чтобы использовать
addEventListener()
(как предложено bažmegakapa , в комментариях ниже):JS Fiddle demo .
Вышеприведенное связывает функцию с событием каждой отдельной ссылки; что потенциально весьма расточительно, когда вы можете связать обработку событий (используя делегирование) с элементом-предком, таким как следующее:
JS Fiddle demo .
Поскольку обработка событий привязана к
body
элементу, который обычно содержит множество других, интерактивных элементов, я использовал временную функцию (actionToFunction
), чтобы определить, что делать с этим щелчком. Если элемент, по которому щелкнули, является ссылкой и, следовательно, имеет значение «tagName
о»a
, обработка щелчка передаетсяreallySure()
функции.Ссылки:
addEventListener()
,confirm()
,getElementsByTagName()
,onclick
,if () {}
,источник
addEventListener
). +1 хотя.addEventListener()
моделью.if(check == true)
наif(check)
.источник
Вы также можете попробовать это:
источник
jAplus
Вы можете сделать это без написания кода JavaScript
Демо-страница
источник
Этот метод немного отличается от любого из приведенных выше ответов, если вы присоединяете свой обработчик событий, используя addEventListener (или attachEvent).
Вы можете прикрепить этот обработчик с помощью:
Или для более старых версий Internet Explorer:
источник
window.event
.Ради интереса я собираюсь использовать одно событие для всего документа вместо добавления события ко всем тегам привязки:
Этот метод будет более эффективным, если у вас будет много тегов привязки. Конечно, это становится еще более эффективным, когда вы добавляете это событие в контейнер, имеющий все теги привязки.
источник
Большинство браузеров не отображают пользовательское сообщение, переданное
confirm()
.С помощью этого метода вы можете показать всплывающее окно с пользовательским сообщением, если ваш пользователь изменил значение любого
<input>
поля.Вы можете применить это только к некоторым ссылкам или даже к другим HTML-элементам на вашей странице. Просто добавьте пользовательский класс ко всем ссылкам, которые требуют подтверждения и примените, используя следующий код:
Попробуйте изменить значение ввода в примере, чтобы получить предварительный просмотр его работы.
источник
ИСПОЛЬЗОВАНИЕ PHP, HTML И JAVASCRIPT для запроса
Просто, если кто-то ищет использование php, html и javascript в одном файле, ответ ниже работает для меня ... Я прикрепил значок ссылки "trash" для загрузки.
причина, по которой я использовал php- код в середине, заключается в том, что я не могу использовать его с самого начала ..
код ниже не работает для меня: -
и я изменил это, как в 1-м коде, затем я запускаю как раз то, что мне нужно ... Я надеюсь, что смогу ли я помочь кому-то inneed моего дела.
источник