2015-11-27 4 views
1

Я пытаюсь создать предупреждение, чтобы гарантировать, что пользователь отправляет правильную информацию, и если щелкнуть «Ok», а не отменить, нажмите ссылку и нажмите <a> послал. Я почти достиг этого, активируется предупреждение, однако не активируется, если щелкнуть ОК. К сожалению, я не волшебник JS, но ..jquery preventDefault on alert, если alert = ok, а затем отправить

EDIT:

нажмите => preventDefault => тревога (да, нет), если да (отправить), если не делают.

<script> 
jQuery(document).ready(function($){ 

$("input.btn-default").click(function(e){ 
    e.preventDefault(); 
    var answer=confirm('Are you sure that you want to do this?'); 
    if(answer == true){ 
     ///not sure how to remove the prevent default and send link?! 
    } 
    else{ 
     return; 
    } 
    }); 
}); 

</script> 
+0

предотвратить поведение по умолчанию в 'else' или возвращают ложь от' else' блока. Метод 'confirm()' является модальным, поэтому вам не нужно беспокоиться о событии в очереди. Это сказано, что в блоке 'if' вы можете использовать' $ (this) .off ('click'). Click(); ' –

ответ

0

confirm() модальный, так что вам просто нужно проверить answer:

jQuery(document).ready(function ($) { 
    $("input.btn-default").click(function (e) { 
     var answer = confirm('Are you sure that you want to do this?'); 
     if (!answer) { 
      e.preventDefault(); 
     } 
    }); 
}); 
+0

Я использовал этот '\t \t $ ("input.btn-умолчанию") нажмите кнопку (функция (е) { \t \t e.preventDefault(). \t \t уаг ответ = подтвердить ('Вы уверены, что вы хочу сделать это '); \t \t \t \t если (ответ == TRUE) { \t \t \t $ (это) .off (? щелчок) нажмите();. \t \t} \t \t еще { \t \t \t return false; \t \t} \t}); }); ' – m33bo

+0

, и это сработало, глядя на оба он работает, однако я не пытался в разных браузерах. – m33bo

+0

'confirm()' modal для всех браузеров, вы должны вместо этого проверять ответ, как в этом ответе, потому что пользователь может удерживать клавишу Ctrl или shift при нажатии на anchor.Используя ваше исправление, это даст другое поведение, чем ожидалось. –

2

Попробуйте следующий код, используя return false; если пользователю отменить диалог подтверждения и window.open($(this).att('href'));, чтобы открыть ссылку, когда пользователь нажимает OK:

$("input.btn-default").click(function(e) 
{ 
    e.preventDefault(); 

    if(confirm('Are you sure that you want to do this?')) 
    { 
     window.open($(this).att('href')); 
    } 
    else 
    { 
     return false; 
    } 
}); 

Надеется, что это помогает.