Вызов функции Javascript из файла

1

Итак... моя домашняя работа говорит...

создайте функцию с именем calcBMI() которая выполняет вычисления с использованием значений в текстовых полях веса и высоты и присваивает результат текстовому полю BMI. Преобразуйте значение в число Integer с помощью функции parseInt(). Сопоставьте текстовые поля внутри функции с помощью documentobject.getElementByID (имя) и атрибут value для каждого текстового поля (другими словами, не используйте аргументы функции AKA для значений). Добавьте прослушиватель событий для вызова функции calcBMI()

Я сделал это здесь. Имейте в виду, что javascript файл является ссылкой в html. Всякий раз, когда я нажимаю кнопку расчета, ничего не происходит.

  function calcBMI() {


    var weight = parseInt(documentobject.getElementByID("weight"));

    var height = parseInt(documentobject.getElementByID("height"));

    var result = (weight * 703) / (height * height);

    var textbox = documentobject.getElementById('Result');

    textbox.value = result;
}


 document.getElementById("submit").
      addEventListener("click", calcBMI(), false);
  • 0
    что такое HTML? есть какие-то ошибки?
Теги:

3 ответа

2

Я вижу 3 вещи:

  1. доступ к объекту DOM, а не его значение
  2. использование documentobject а не document
  3. вызывая функцию вместо передачи ее в качестве обратного вызова.

Здесь для устранения проблемы с элементом DOM:
var weight = parseInt(document.getElementByID("weight").value)
Используйте то же самое для других переменных.

Похоже, вы можете вызывать calcBMI(), а не передавать его как callback calcBMI
.addEventListener("click", calcBMI, false);

Проверьте MDN на прослушиватели событий

Также похоже, что вы ссылались на documentobject а не на document.

var textbox = documentobject.getElementById('Result');

Попробуй это:
var textbox = document.getElementById('Result');

Надеюсь это поможет!

1

При вызове addEventListener() вам необходимо передать ссылку на функцию обратного вызова. Вы вызываете функцию, что неверно. Попробуйте это вместо этого:

document.getElementById("submit").addEventListener("click", calcBMI, false);

  • 0
    Нужно ли добавить что-нибудь в html-файл, чтобы эта функция работала? Всякий раз, когда я нажимаю кнопку отправки, все возвращается к 0.
  • 0
    Страница перезагружается? Если так, то это, вероятно, потому что форма отправляется. Вам нужно будет добавить код JS, чтобы этого не случилось. Не видя ваш HTML, трудно сказать.
Показать ещё 1 комментарий
0

Вы присваиваете dom элементам переменные веса и высоты. Вы должны получить значение текстового поля.

function calcBMI() {
    var weight = parseInt(document.getElementByID("weight").value);
    var height = parseInt(document.getElementByID("height").value);
    var result = (weight * 703) / (height * height);
    var textbox = document.getElementById('Result');
    textbox.value = result;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню