0

Я значительно сократил свой код, но ниже реле довольно эффективно, я пытаюсь обновить переменную «Монитор», если кнопки будут нажаты. Я могу получить переменную до моего кода, если я поместил весь свой код внутри функции «button.onclick». Однако мой код не будет работать, пока я не нажму кнопку. Мне нужен мой код для запуска, и если нажать кнопку, он обновит мой код.javascript, получающий переменную от дочернего элемента к родительскому

<form name="form1"> 
    <span id="buttons"> 
    <input type="button" name="button1" value="funny1"/> 
    <input type="button" name="button2" value="funny2"/> 
    </span> 
</form> 
<script type="text/javascript"> 
    var Monitor, buttonsDiv=document.getElementById("buttons"); 
    Monitor = "funny1" 
    for (var i=1; i<=2; i++) { 
     var button = document.form1["button" + i]; 
     button.onclick = function() { 
      buttons.Monitor = this.value; 
     }; 

     /*lots of my own code that runs 
     inside of my for loop waiting 
     to reference monitor for an update*/ 

</script> 
+0

Почему вы меняете buttons.Monitor вместо монитора? – Shomz

+0

Это на самом деле только моя последняя попытка получить эту работу, я установил ее в Monitor, и это тоже не сработало. Я пробовал кнопки Monitor.opener var.Monitor и несколько других вещей, я опытный программист, но я новичок в java, php и javascript. подталкивал себя на несколько недель, изучая множество новых вещей, и по какой-то причине javascript кажется самым трудным обернуть мою голову. – Cfoote7

+0

Мне непонятно, почему у вас есть петля, ожидающая чего-то. Помещение вашего кода в обработчик события для нажатия кнопки - это обычный способ сделать что-то в Javascript. –

ответ

2

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

var Monitor = "funny1"; 

//selecting all elements named button 
var buttons = document.querySelectorAll('input[type="button"]'); 

//For each of the buttons wire up an event listener 
for(var i=0, length=buttons.length; i < length;i++) 
{ 
    //create a reference shorthand 
    var button = buttons[i]; 

    //add the event listener for a click 
    button.addEventListener('click', function(event) 
    { 
     //on the event look at the event's target property to find the element that invoked the click 
     Monitor = event.target.value; 
     console.log(Monitor); //Output the value of monitor the the console 
    });  
} 

Этот код сначала находит все входы с кнопкой type =. Я предлагаю вам, возможно, дать входные данные классу вместо этого, чтобы сделать селектор более четким, ваш выбор. Во-вторых, я прокручиваю кнопки и провожу событие для каждого из них. Затем событие устанавливает значение переменной Monitor.

http://jsfiddle.net/wcf4c/

+0

У меня по-прежнему возникали проблемы, а что-то о for (var i = 0, length = button.length; i Cfoote7

+0

мои извинения, проблема в том, что проблема в том, что если я помещаю свой код внутри слушателя, он не работает, пока я не нажму кнопку. если он находится вне слушателя, он не получает результатов от слушателя. – Cfoote7

+0

Извините, я не следую – cgatian