@f1rew0rk14

Почему HTML не видит js функцию?

Добавил в html форму и кнопку, нажимая на которую должна вызываться функция из скрипта.
Если в этом скрипте пишу только функцию, то все работает, но если туда добавить импорты, то уже пишет, что функция нигде не используется и соответственно скрипт не работает.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./get_input_data.js"></script>
</head>
<body>
<h1>Send message</h1>
    <form onsubmit="get_input_data()">
        <input type="text"  id="data">
        <button type="submit" >send</button>
    </form>
</body>
</html>


/*import {parameters} from "./Parameters";
import {spam_protection} from "./client";*/

function get_input_data()
{
    let text = document.getElementById("data");
    alert(text.value);
}
  • Вопрос задан
  • 984 просмотра
Пригласить эксперта
Ответы на вопрос 4
Zagir-vip
@Zagir-vip
Web dev, Game dev, app dev, Разработчик на Python!
оберните js в тег
Ответ написан
Если не ошибаюсь, onsubmit работает только со скриптами, прописанными в том же html-файле, внутри тега script. С внешними файлами он не работает. В любом случае, сабмитить из html - так себе практика. Если вы все равно пишете js во внешних файлах, то и сабмит там же делайте. А для доступа к конкретным значениям формы пользуйтесь атрибутами name:

<form id="form">
    <input type="text" name="textField">
    <button type="submit" >send</button>
</form>


const form = document.querySelector('#form')

function submitForm(event) {
  event.preventDefault()
  console.log(event.target.textField.value)
}

form.addEventListener('submit', submitForm)
Ответ написан
Комментировать
imko
@imko
Senior Scratch Developer
Вынеси в window
window.get_input_data = function ()
{
    let text = document.getElementById("data");
    alert(text.value);
}
Ответ написан
Комментировать
@BUTURUM
на самом деле js встроенный в html атрибуты - штука спорная и ненадежная. предлагаю просто в конце дописать:
<script>
     document.getElementById('form').addEventListener('submit',  get_input_data)
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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