Вызов глобальной переменной в две функции с использованием JavaScript

1

У меня есть глобальная переменная:

var x = document.getElementById("Node").value;

Где значение определяется текстовым полем с идентификатором "Узла".

У меня есть две функции, которые не то же самое, если создавать предустановленные ноты на основе значений, введенных в текст и выпадающих. Как вызвать указанную выше глобальную переменную в эти функции и добавить ее в созданный оператор. Обе функции выглядят одинаково:

Это работает для одной функции, но не тогда, когда есть два. У меня есть несколько текстовых полей и падений. Одним из этих текстовых полей является глобальное значение, называемое Node. Когда узел заполняется, я хочу, чтобы это значение можно было вывести в обе функции. Вот что я имею для обоих.

//Declare Node as a Global Variable
var x = document.getElementById("Node").value;

//Populates the Summary box
function mySummary() {
    var a = document.getElementById("Field1").value;
    var b = document.getElementById("Field2").value;
    var c = document.getElementById("Field3").value;
    var d = document.getElementById("Field4").value;
    document.getElementById("Summary").innerHTML = a + " - " + b + " - " + c + " - " + x + " -" + d;
}

//Populates the Notes box
function myNotes() {
    var a = document.getElementById("Field5").value;
    var b = document.getElementById("Field6").value;
    var c = document.getElementById("Field7").value;
    var d = document.getElementById("Field8").value;
    var e = document.getElementById("Field9").value;
    document.getElementById("Notes").innerHTML = x + " - " + a + " / " + b + " - " + c + "% Offline - " + d + " - " + e + " - " + f;
}

Проблема в том, что значение X не выводится одновременно в обе функции для вывода. Выход идет в текстовую область

Если я создаю локальную переменную в каждой функции и сделаю, чтобы пользователь вводил одну и ту же информацию дважды в текстовое поле, она работает нормально, но я хочу, чтобы они только вводили информацию один раз и вставляли ее в каждую текстовую область

  • 0
    global variable = это было бы x - скорее всего, x - это не то значение, о котором вы думаете, потому что оно устанавливается один раз, когда выполняется этот код, поэтому оно не изменяется динамически, когда меняется # Node.value
  • 1
    Так как это глобально - a + b + c + d + x .
Показать ещё 2 комментария
Теги:
variables
global

2 ответа

0

Попробуй это

(function() {
    var x = document.getElementById("Node").value;
    document.getElementById("Node").onchange = function() {
      myNode()
    };
    document.getElementById("mySelect1").onchange = function() {
      myNotes()
    };
    document.getElementById("mySelect2").onclick = function() {
      summary()
    };
    
     function myNode() {
      x = document.getElementById("Node").value;
    }

    function summary() {
      var a = document.getElementById("mySelect1").value;
      var b = document.getElementById("mySelect2").value;
      document.getElementById("5").value = a + " - " + b + " - " + x;
    }

    function myNotes() {

      var a = document.getElementById("mySelect1").value;
      var b = document.getElementById("mySelect2").value;
      document.getElementById("4").value = a + " + " + b + " + " + x;
    }


  }





)();
Notes : <input type="text" id="4" /><br> Summary : <input type="text" id="5" /><br>
<select id="Node">
  <option value="w">w
  <option value="x">x
  <option value="y">y
  <option value="z">z
</select>
<select id="mySelect2">
  <option value="a">a
  <option value="b">b
  <option value="c">c
  <option value="d">d
</select>
<select id="mySelect1">
  <option value="1">1
  <option value="2">2
  <option value="3">3
  <option value="4">4
</select>
  • 0
    Это работает для одной функции, но не для двух.
  • 0
    Попробуйте теперь объявить x вне и инициализировать его внутри функции
Показать ещё 6 комментариев
0

Вы можете просто использовать:

window.x = document.getElementById("Node").value;
  • 0
    Это вытягивает значение текстового поля в первую функцию, но когда я добавляю его во вторую функцию, оно не вызывает его. Функции помещают в текстовое поле значения полей, которые заполняются в одну строку. Я могу вызвать узел в одну функцию или другую, но не в обе одновременно, когда поле заполнено

Ещё вопросы

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