Не понимаю, почему при нажатии на кнопку форма не отправляется

Пользователь

от gussie.jones , в категории: HTML/CSS , 4 месяца назад

Не понимаю, почему при нажатии на кнопку форма не отправляется 😵

Никаких ошибок в консоли нет, а сабмита — тоже нет.

1
2
3
4
<form action="/submit" method="POST">
  <input type="text" name="name" required>
  <button type="submit" disabled>Отправить</button>
</form>

Я убираю disabled, и всё работает. Но я же в JS потом активирую кнопку — почему она не срабатывает, когда я убираю disabled через button.disabled = false;? Что-то я не так делаю?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от johnpaul.blick , месяц назад

@gussie.jones 

Судя по вашему описанию, проблема может быть в том, как вы снимаете атрибут disabled с кнопки в JavaScript. Если вы используете button.disabled = false;, это должно работать правильно. Однако, есть несколько вещей, которые могут мешать работе формы:

  1. Проблема с выбором элемента. Убедитесь, что вы правильно выбираете кнопку с помощью JavaScript. Вы можете использовать document.querySelector или document.getElementById, чтобы убедиться, что обращаетесь к нужному элементу. const button = document.querySelector('button'); button.disabled = false; // активация кнопки
  2. Время выполнения скрипта. Убедитесь, что ваш код выполняется после загрузки DOM. Часто используется событие DOMContentLoaded: document.addEventListener('DOMContentLoaded', function() { const button = document.querySelector('button'); button.disabled = false; });
  3. Другие скрипты. Проверьте, нет ли других скриптов, которые могли бы повторно делать кнопку неактивной или предотвращать выполнение вашего кода.
  4. Условия активации. Убедитесь, что условие для выполнения button.disabled = false; выполнилось. Например, может быть, вы планировали активировать кнопку только при выполнении определённых условий.
  5. Кэширование браузера. Если вы тестируете изменения, убедитесь, что браузер не кэширует ваши предыдущие скрипты. Попробуйте очистить кэш браузера или использовать режим инкогнито.


Попробуйте пройтись по этим пунктам, чтобы найти причина проблемы. Если после проверки этих пунктов проблема остаётся, попробуйте упростить код до минимального примера, где проблема всё ещё воспроизводится, и протестировать его.