#javascript
#javascript
Вопрос:
У меня есть кнопка, которая действует как ссылка. Onclick — это функция myAlert(), показанная ниже. Функция создает всплывающее окно с вопросом, хотите ли вы продолжить. Он все равно переходит на следующую страницу, даже если вы нажмете «отмена». Что мне делать?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="grey" align="center">
<a href="333.html"><button onclick="myAlert()">Sign up</button></a><a href="22.html"><button >Log in</button></a>
<script>
function myAlert(){
if (confirm('Are you sure you want to sign up?')) {
console.log('Thank you.');
} else {
}
}
</script>
</body>
</html>
Комментарии:
1. Пожалуйста, скажите мне, если какая-либо часть этого сложна для понимания.
Ответ №1:
Вы разместили кнопку внутри самой ссылки. Поэтому после закрытия диалогового окна браузер обрабатывает событие onclick ссылки, что приводит к переходу к цели ссылки.
Вы можете полностью удалить элементы ссылок и обрабатывать все с помощью кнопок:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="grey" align="center">
<button onclick="myAlert('333.html')">Sign up</button><button onclick="window.location.href='22.html'">Log in</button>
<script>
function myAlert(redirect){
if (confirm('Are you sure you want to sign up?')) {
window.location.href=redirect
console.log('Thank you.');
} else {
}
}
</script>
</body>
</html>
Ответ №2:
Используйте preventDefault()
метод, чтобы отменить действие по умолчанию, относящееся к переходу на следующую страницу.
function myAlert(e) {
if (confirm('Are you sure you want to sign up?')) {
console.log('Thank you.');
} else {
e.preventDefault();
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="grey" align="center">
<a href="333.html"><button onclick="myAlert(event)">Sign up</button></a><a href="22.html"><button >Log in</button></a>
</body>
</html>