Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не могу прервать переход по ссылке :( (https://javascript.ru/forum/dom-window/56034-ne-mogu-prervat-perekhod-po-ssylke.html)

aialonix 26.05.2015 19:33

Не могу прервать переход по ссылке :(
 
Друзья, помогите пожалуйста с решением проблемы!

Суть в том, что при нажатии на ссылку появляется окно с подтверждением удаления. Но даже если я и нажимаю "Отмена", переход по ссылке осуществляется в любом случае. Как мне этого избежать, подскажите пожалуйста? Заранее спасибо.

<!DOCTYPE html>
<html>
<head>
   <meta charset=utf-8>
   <title>Document</title>
</head>
<body>

   <div class="box_input">
      <input type="text" value="input_one">
      <a class="delete_input" onclick="delete_item(this)" href="index.html">Удалить</a>
   </div>
   <div class="box_input">
      <input type="text" value="input_two">
      <a class="delete_input" onclick="delete_item(this)" href="index.html">Удалить</a>
   </div>

<script>
   function delete_item(param) {
      return confirm('Вы подтверждаете удаление записи '+param.previousElementSibling.value+"?");
   }
</script>

</body>
</html>

Leon-on12 26.05.2015 19:50

Убрать из href="index.html" И поставить туда например якорь на... Да куда угодно. А при подтверждении, jsом отправлять человека на index.html. Если js так умеет. Вроде умеет.

В общем проблема в там что так как тегу <a> задан хреф, он туда всё равно отправиться, выполнив перед этим js или без него.

Endy 26.05.2015 20:05

aialonix,
<div class="box_input">
    <input type="text" value="input_one"> <a class="delete_input" onclick="return delete_item(this)" href="index.html">Удалить</a>

</div>
<div class="box_input">
    <input type="text" value="input_two"> <a class="delete_input" onclick="return delete_item(this)" href="index.html">Удалить</a>

</div>

aialonix 26.05.2015 20:15

Endy, cпасибо большое, теперь работает как надо :)

kostyanet 26.05.2015 20:33

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

Тут был наезд, а я так и пишу, чтоб не забывать

onclick="{return foo(this);}"

aialonix 26.05.2015 22:53

Спасибо kostyanet, познавательная информация)


Часовой пояс GMT +3, время: 05:20.