@atumbochka

Почему при нажатии кнопки переносится на другую страницу?

Если нажать на кнопку, то открывается новая страница и выдаёт следующее: Cannot GET /action_page.php
Код:
let name = document.getElementById("fname");
let text = document.getElementById("subject");
let btn = document.getElementById("btn");

let lastReviews = {};


<div class="review">
            <div class="c">
                <form action="action_page.php">
              
                  <label for="fname">Имя</label>
                  <input type="text" id="fname" name="firstname">
              
                  <label for="subject">Текст отзыва</label>
                  <textarea id="subject" name="subject" style="height:200px"></textarea>
              
                  <button>Отправить</button>
              
                </form>
            </div>
        </div>

input[type=text], select, textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    margin-top: 6px;
    margin-bottom: 16px;
    resize: vertical
}

button {
    background-color: #4CAF50;
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.c {
    border-radius: 5px;
    background-color: #f2f2f2;
    padding: 20px;
}
  • Вопрос задан
  • 603 просмотра
Решения вопроса 2
@Lord_Dantes
Не отменили дефолтную функию формы и поэтому кидает на action.
Ответ написан
Комментировать
max_shane
@max_shane
Javascript / Node.js dev
Может быть потому, что по-умолчанию при обращении к URL в action вызывается метод GET?
И на сервере при этом нет обработчика при запросе GET /action_page.php.

Если у вас на сервере есть маршрут POST /action_page.php, то и метод отправки запроса должен быть POST.
В любом случае в элементе form рекомендую явно указывать метод:

<form action="action_page.php" method="post">
или
<form action="action_page.php" method="get">
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dero
о себе
Не совсем понятно что должно происходить)
Если вы хотите отправлять форму скриптом (ajax), то нужно добавить в обработчик. event.preventDefault()

Подробнее: https://learn.javascript.ru/default-browser-action
Ответ написан
Комментировать
@dennis_d
One Love, One Front-End
Запускаете точно на сервере?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы