Кнопка вызова функции php, когда этого не следует

Я создаю html-страницу, где отображается информация о зарегистрированном пользователе, рядом с информацией есть кнопка, открывающая форму:

<h1 class = "personal">Il mio profilo: <button class = "add_btn" onclick = "mod()">Modifica</button></h1>
    <div class = "mobile-screen" id = "modform" style = "display: none">
        <form action = "modifica.php" method = "post" id = "mod-form">
            <table>
                <button class = "login-btn" onclick = "mod()">Chiudi</button>
                    <tr>
                        <input type = "text" name = "memail" id = "memail" placeholder = "E-Mail">
                    </tr>
                    <tr>
                        <input type = "text" name = "mpass" id = "mpassword" placeholder = "Password">
                        <input type = "text" name = "mmphone" id = "mmphone" placeholder = "Cellulare">
                    </tr>
                    <tr>
                        <input type = "submit" class = "login-btn" name = "mod" id = "signup-btn" value = "Modifica">                             
                    </tr>
            </table>
       </form>
   </div>

В этой форме я добавил кнопку, которая должна закрыть его, вызвав функцию js.

Это кнопка:

<button class = "login-btn" onclick = "mod()">Chiudi</button>

Это функция JS, которая называется

function mod(){
    var y = document.getElementById("modform");
    if (y.style.display === "none") {
        y.style.display = "block";
    }else{
        y.style.display = "none";
    }
}

Каждый раз, когда я нажимаю эту кнопку, вызывается файл modifica.php

Есть идеи, почему это происходит?

Модифицировал кнопку так:

<button type = "button" class = "login-btn" onclick = "mod()">Chiudi</button>

Но он по-прежнему вызывает modifica.php

Решения, приведенные в этом вопросе, мне не помогли, поэтому я спросил

Davide 23.06.2018 19:39

Да, это так. Если этого не произошло, у вас возникнет другая проблема. Например, название ваших функций такое же, как у ваших кнопок.

mplungjan 23.06.2018 19:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
29
1

Ответы 1

По умолчанию <button> в форме будет обрабатываться как кнопка отправки (и, следовательно, отправить форму для любого действия, в данном случае modifica.php), чтобы избежать этого, чтобы установить для атрибута type значение button.

<button type = "button" class = "login-btn" onclick = "mod()">Chiudi</button>

Пробовал, проблема не устранилась

Davide 23.06.2018 19:35

Это ответ на заданный вопрос с помощью данной кнопки. Убедитесь, что вы добавили его на правильную кнопку и что ваша форма не кэширована

mplungjan 23.06.2018 19:37

чтобы обновить страницу без кеша, вы часто можете запустить ctrl + shift + R или cmd + shift + R

Matthew Ciaramitaro 23.06.2018 19:39

обновила страницу без кеша, и она по-прежнему вызывает функцию, она добавляется к правильной кнопке, у меня есть еще 3 кнопки, 1 работает правильно, 1 вызывает функцию, а последняя перезагружает страницу. Функции js остались прежними, но изменились идентификатор и имя функции.

Davide 23.06.2018 19:43

Есть ли у вас какой-либо другой код, относящийся к форме / кнопке, которые вы не публиковали?

Musa 23.06.2018 19:46

Посмотрите в консоль. Вы увидите ошибки или что-то подобное. Измените функцию на function mod(e) { alert(e.target.innerHTML); e.preventDefault(); ...

mplungjan 23.06.2018 19:47

@Musa У меня есть код CSS и файл PHP, который называется

Davide 23.06.2018 19:51

Я изменил название функций, и теперь 2 кнопки работают правильно, а 2 ничего не делают, но проблема в том, что я изменил только 2 случайным образом и оставил 1 как было, теперь 2 работают (1 уже работала правильно, а 1 вызывал php-страницу), а 2 - нет (1 вызывал php-страницу, а 1 перезагружал страницу)

Davide 23.06.2018 19:54

Другие вопросы по теме