HTML-форма в переменную JavaScript

У меня есть сценарий. Этот скрипт должен произвести некоторые вычисления. По той причине, что теперь пользователь должен редактировать переменные сценария в файле, я хочу написать форму, которая обновляет переменные всегда, когда форма обновляется. Существует около 10 переменных, которые необходимо обновлять всегда, когда обновляется одна переменная в форме.

Например:

В HTML-форме есть 10 полей, подобных этому (onchange = "formChanged()" из пробной версии):

<input type = "number" name = "pL" step = "0.001" value = "250000" onchange = "formChanged()"/><br>

Итак, я хочу отредактировать эту переменную в JavaScript:

var pL=250000;

Я пробовал это:

function formChanged() {
    var x = document.getElementsByName("x")[0].value
    var m0 = document.getElementsByName("pL")[0].value
    var V = document.getElementsByName("V")[0].value
}

Но это не работает ... Есть ли предложения, что делаю не так?

вам действительно стоит взять книгу и начать изучать js, это слишком тривиально, m0.value

slash197 10.03.2018 11:40

Можете ли вы поделиться своей полной функцией onchange?

Luca Kiebel 10.03.2018 11:46

извините во время копирования, я забыл .value @ slash197, теперь лучше?

MelcomX 10.03.2018 11:46
Поведение ключевого слова "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
3
85
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

См. https://www.w3schools.com/jsref/met_doc_getelementsbyname.asp

Это должен быть getElementsByName.

<!DOCTYPE html>
<html>
<body>

<input type = "number" name = "pL" step = "0.001" value = "250000" onchange = "formChanged()"/><br>
<input type = "number" name = "x" step = "0.001" value = "250000" onchange = "formChanged()"/><br>
<input type = "number" name = "V" step = "0.001" value = "250000" onchange = "formChanged()"/><br>

<p id = "demo"></p>

<script>function formChanged() {
    var x = document.getElementsByName("x")[0].value
    var m0 = document.getElementsByName("pL")[0].value
    var V = document.getElementsByName("V")[0].value
    document.getElementById("demo").innerHTML = x + ' ' + m0 + ' ' + V;
}
</script>

</body>
</html>

Это работает. Добавьте, пожалуйста, отрывок со всем кодом.

Спасибо, но, к сожалению, это не единственная ошибка ... :(

MelcomX 10.03.2018 12:02

Смотрите мою правку. @Ibrahim ответ неверен для input, см .: w3schools.com/tags/tag_input.asp

jcpaiva 10.03.2018 12:36

В HTML5 атрибут «name» устарел и был заменен атрибутом «id» для многих элементов. Я пробовал следующее, и у меня это сработало.

<input type = "number" id = "pL" step = "0.001" value = "250000" onchange = "formChanged()"/>

<script>
function formChanged() {
    var m0 = document.getElementById("pL").value;
    alert("The current value is " + m0);
}
</script>

Сообщите мне, работает ли это и для вас. Также убедитесь, что вы поставили точки с запятой после операторов в функции formChanged ().

Атрибут name для элементов формы является нет "устаревшим" или устаревшим: см. Спецификация W3C.

indextwo 10.03.2018 12:28

если вы хотите изменить значение переменной с помощью javascript, присвойте значение его свойству value.

так что вместо

pL=250000;

напишите, в вашей функции formChanged

document.getElementsByName("pL")[0].value=250000;

также из вашего вопроса неясно, какой расчет вы хотите сделать на если, скажем, вы хотите добавить значения x и V, чтобы получить новый pL затем написать

var x = document.getElementsByName("x")[0].value
var m0 = document.getElementsByName("pL")[0].value
var V = document.getElementsByName("V")[0].value
document.getElementsByName("pL")[0].value=Number(x)+Number(V)

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