Note that there are some explanatory texts on larger screens.

plurals
  1. POJavascript: toggling an input label on and off only works on the last label in the form
    primarykey
    data
    text
    <p>I'm trying to make labels toggle on and off when their respective inputs are clicked. However my code just turns off the last label in the form. I know jQuery would be the best solution, but I'm trying to get to grips with Javascript. I would greatly appreciate any help. Many thanks! :)</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;script type="text/javascript"&gt; window.onload=foo; function foo(){ function ToggleLabels(form){ var oForm = document.forms[form]; // this function will add events to objects. function addEvent(object,eType,eWindowsType,func,bubble){ if(window.addEventListener){ object.addEventListener(eType,func,bubble); } if(window.attachEvent){ object.attachEvent(eWindowsType,func); } } //toggles the display of the labels function toggle(input,label){ alert(label.innerHTML) if(input.value == ''){ if(label.style.display == 'none'){ label.style.display = 'inline'; } else{ label.style.display = 'none'; } } else{ label.style.display = 'none'; } } // Loop through all text inputs in the form and add the toggle functionality for(var i=0; i &lt; oForm.length; i++){ if(oForm.elements[i].type == 'text'){ var oInput = oForm.elements[i]; var oLabel = oInput.previousSibling; addEvent(oInput,'click','onclick',function(){toggle(oInput,oLabel)},false); } } } new ToggleLabels(0); } &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form&gt; &lt;label for="name" id="nameL"&gt;Name: &lt;/label&gt;&lt;input id="name" type="text" name="name"/&gt; &lt;label for="age"&gt;Age: &lt;/label&gt;&lt;input type="text" name="age"/&gt; &lt;label for="gender"&gt;Gender: &lt;/label&gt;&lt;input type="text" name="gender"/&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload