2009-12-30 1 views
0

я пытался получить окнеПодтверждение работать, я с помощью PHP и JQuery, чтобы окно подтверждения появляется при нажатии на ссылку удалить, фактический код:Javascript подтверждения в диалоговом не работает должным образом

$(document).ready(function(){ 
    if (jQuery("a.delete-link").length > 0) { 
     $("a.delete-link").bind("click", function(){ 
      return confirm("Sunteti sigur ca doriti sa stergeti?"); 
     }); 
    } 
}); 

и связь называется:

<a href="javascript:void(0);" class="formSubmit delete-link" id="sterge">sterge</a> 

ссылка используется для отправки формы при нажатии на код, который:

$(document).ready(function(){ 
    if ($(".formSubmit").length > 0) { 
     if ($(".formSubmit").parents("form").find("input:submit").length == 0) { 
      $(".formSubmit").parents("form").append('<div style="width:1px;height:1px;overflow:hidden;"><input style="width:0;height:0;overflow:hidden;" type="submit" /></div>'); 
     } 
     $(".formSubmit").click(function(){ 
      $(this).parents("form").trigger("submit"); 
      return false; 
     }); 
    } 
}); 

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

+0

обновление: есть ли способ, чтобы заставить его работать и по-прежнему держать вещи в отдельные функции? ответ Дарин Димитров обеспечил работу лучше всего, но функции не обязательно называются вместе – Raz

ответ

1

У вас есть события с двумя щелчками, привязанные к тегу привязки. Первое событие показывает подтверждение, а второе представляет форму.

Trigger форма представления, только если пользователь подтвердил:

$(document).ready(function(){ 
    if ($(".formSubmit").length > 0) { 
     if ($(".formSubmit").parents("form").find("input:submit").length == 0) { 
      $(".formSubmit").parents("form").append('<div style="width:1px;height:1px;overflow:hidden;"><input style="width:0;height:0;overflow:hidden;" type="submit" /></div>'); 
     } 
     $(".formSubmit").click(function(){ 
      if ($(this).hasClass('delete-link') && confirm("Sunteti sigur ca doriti sa stergeti?")) 
      { 
       $(this).parents("form").trigger("submit"); 
      } 
      return false; 
     }); 
    } 
}); 
+0

Благодарю вас за ответ, это покажется лучшим, я проверю его и вернусь к вам. – Raz

+0

Действительно, это было самое лучшее решение, единственное редактирование, которое я сделал: вместо «if ($ (this) .hasClass ('delete-link') && confirm (« Sunteti sigur ca doriti sa stergeti? »)) "block i используется if ($ (this) .hasClass ('delete-link-form')) { if (confirm (" Sunteti sigur ca doriti sa stergeti? ")) { $ (this). . родители ("форма") триггер ("отправить"); } прочее return false; } – Raz

4

Привязать подтверждение к форме onSubmit. Таким образом вы сэкономите много хлопот, и вы получите подтверждение независимо от того, как была отправлена ​​форма.

$(document).ready (function() { 
    $('selector for your form').submit (function() { 
     return confirm ('Are you sure ...?'); 
    }); 
}); 
+0

Благодарю вас за ваше решение, но из-за характера рамки, которую я должен использовать, я не могу это сделать – Raz

+0

Объясните, может быть, мы сможем найти работу -around " –

+0

в некоторых частях веб-сайта функция, назначенная для поля подтверждения, используется независимо от формы, которая была бы моей главной проблемой, а также предоставленный вами код, кажется, запрашивает подтверждение каждый раз при отправке формы, а i не нужно, мне нужно подтвердить только для определенного класса ссылок. – Raz

0

Вы можете использовать это:

<a href="#" onclick"return javascript:void(0);" ... /> 
Смежные вопросы