2013-01-04 3 views
1

У меня есть базовый диалог подтверждения javascript, чтобы подтвердить, хочет ли пользователь выполнить действие. Диалог работает правильно, если пользователь просто нажимает кнопку «ОК» или «Отмена». Однако, если пользователь нажимает кнопку «Отмена», затем повторно запускает диалог, затем нажимает «ОК», форма не отправляется.Диалог подтверждения не работает после возврата false

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

$("#myButton").click(function (event) { 
    var result = confirm("Are you sure?"); 
    if (result) { 
     return true; 
    } else { 
     return false; 
    } 
}); 

Обратите внимание, что я также пытался event.preventDefault вместо return false и я вижу один и тот же результат.

+4

не какой-то код не хватает? Форма и т. Д.? Потому что я не вижу места, где вы делаете что-то с «результатом», за исключением какого-то бесполезного условия. –

ответ

2

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

<form id="wohoo" action="/somewhere"> 
    <input /> 
    <input type="submit" value="send me"/> 
</form>​ 

$("#wohoo").submit(function() { 
    var result = confirm("Are you sure?"); 

    return result; 
});​ 

http://jsfiddle.net/2tSbJ/

+0

Проблема на самом деле оказалась в том, что мой механизм шаблонов (ASPX) вводил дополнительный обработчик кликов в другом месте. Однако решение выше работает отлично. –

2

Если вы пытаетесь, чтобы подтвердить форму submition попробовать это вместо

$("form").submit(function() { 
    return confirm("Are you sure?"); 
}); 
Смежные вопросы