Ответ 1
onclick="if (confirm('Are you...?')) commentDelete(1); return false"
Вам не хватает if
. В вашей версии сначала вы задаете вопрос, а затем, независимо от ответа, вы вызываете commentDelete
.
У меня есть кнопка удаления, привязанная к некоторым комментариям на странице, которую у меня есть. Когда вы нажимаете кнопку "Удалить", я пытаюсь получить диалоговое окно подтверждения, чтобы спросить, уверены ли вы, что хотите удалить комментарий. Нажатие кнопки "ОК" должно запустить функцию для удаления комментария, а нажатие "Отмена" не должно запускать функцию, но просто закройте диалоговое окно.
Это мой код:
onclick="confirm('Are you sure that you want to delete this comment?'); commentDelete(1);"
Моя проблема: когда я нажимаю кнопку "Отменить", функция удаления все еще работает. Я предполагаю, что функция по-прежнему вызывает вызов, потому что, когда я нажимаю кнопку "Отменить", она просто переходит в JavaScript и вызывает функцию. Как я могу выполнить это правильно? Я знаю, что это, вероятно, простая проблема. Спасибо за любую помощь!
onclick="if (confirm('Are you...?')) commentDelete(1); return false"
Вам не хватает if
. В вашей версии сначала вы задаете вопрос, а затем, независимо от ответа, вы вызываете commentDelete
.
Вы относитесь к confirm, если это оператор if
, он просто возвращает логическое значение true или false.
if(confirm('foo')){ alert('bar'); }
function getConfirmation()
{
var retVal = confirm("Do you want to continue ?");
if (retVal == true)
{
alert("User wants to continue!");
return true;
}
else
{
alert("User does not want to continue!");
return false;
}
}
**
После написания этого кода вы можете вызвать эту функцию в следующем коде
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName = "Изменить" Текст = "Изменить" OnClientClick = "getConfirmation()"
function confirmCancel(){
var msj='Are you sure that you want to delete this comment?';
if (!confirm(msj)) {
return false;
} else {
window.location='backcables.php';
}
}
Вы должны вернуть false, чтобы предотвратить событие по умолчанию. Это должно работать:
onclick="confirm('Are you sure that you want to delete this comment?'); commentDelete(1);return false;"
Может быть, потому, что вы установили type=submit
в форму, содержащую javascript.
Вы должны установить его на кнопку или изображение или что бы то ни было, если вы не хотите, чтобы его отправили, если щелкнуть cancel
<form name="form_name">
<input type="button" onclick="javascript_prompt()" value="GO"/>
<input type="hidden" name="new_name" value=""/>
</form>
пример подсказки javascript:
function javascript_prompt(){
var name = prompt("Tell me your name.", "");
if (name != "" && name != null){
document.form_name.new_name.value = name;
document.form_name.submit();
}else{
return false;
}
}