Отображать всплывающее окно с подтверждением JavaScript при нажатии на ссылку - PullRequest
10 голосов
/ 16 ноября 2008

Как мне сделать одну из тех гиперссылок, когда при нажатии на нее появится всплывающее окно с вопросом «Вы уверены?»

<INPUT TYPE="Button" NAME="confirm" VALUE="???" onClick="message()">

У меня уже работает функция message (). Мне просто нужно знать, каким будет тип ввода для гиперссылки.

Ответы [ 4 ]

23 голосов
/ 16 ноября 2008
<a href="http://somewhere_else" onclick="return confirm()">

Когда пользователь щелкает ссылку, вызывается функция confirm. Если функция подтверждения возвращает false, обход ссылки отменяется, если возвращается значение true, ссылка проходит.

15 голосов
/ 11 июня 2009
<a href="http://something.com" onclick="return confirmAction()">try to click, I dare you</a>

с функцией

function confirmAction(){
      var confirmed = confirm("Are you sure? This will remove this entry forever.");
      return confirmed;
}

(вы также можете вернуть подтверждение сразу, я разделил его для удобства чтения)

Протестировано в FF, Chrome и IE

2 голосов
/ 16 ноября 2008

Как сказал Нахом, за исключением того, что я бы поместил вызов javascript:message() непосредственно в часть href (тогда не нужно использовать onclik).

Примечание: оставление вызова JavaScript в onClick имеет преимущество: в атрибуте href можно указать URL-адрес, к которому нужно перейти, если у пользователя не включен JavaScript , Таким образом, если у них есть JS, ваш код запускается. Если они этого не делают, они идут куда-то, где им предписано включить (возможно).

Теперь ваша подпрограмма message должна не только задавать вопрос, но и использовать ответ: если она положительная, она должна вызвать submit () в форме, чтобы опубликовать форму. Вы можете передать this в вызове, чтобы упростить выборку формы.

Лично я бы использовал кнопку (тег ввода, как вы показываете) вместо простой ссылки для выполнения процесса: он использовал бы более привычную для пользователей парадигму.

[РЕДАКТИРОВАТЬ] Поскольку я предпочитаю проверять ответы, которые я даю, я написал простой тест:

<script type="text/javascript" language="JavaScript">
function AskAndSubmit(t)
{
  var answer = confirm("Are you sure you want to do this?");
  if (answer)
  {
    t.form.submit();
  }
}
</script>

<form action="Tests/Test.html" method="GET" name="subscriberAddForm">
<input type="hidden" name="locationId" value="2721"/>
<input type="text" name="text" value="3.1415926535897732384"/>
<input type="button" name="Confirm" value="Submit this form" onclick="AskAndSubmit(this)"/>
</form>

Да, отправьте, просто перезагрузите страницу здесь ... Проверено только в FF3.

[ПРАВИТЬ] Следующее предложение в комментариях ...: -)

0 голосов
/ 16 ноября 2008
<a href="#" onclick="message(); return false;">???</a>

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

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