-1

This is my code where onclick function is mentioned. This code works fine on firefox but it doesnt work on chrome. the onclick function is working on firefox i.e when i click on degree it displays the checkbox but when i run this same code on chrome it is not displaying the checkboxes.

function myFunction() {
  var x = document.getElementById("mydiv");
  var y = document.getElementById("mydiv1");

  if (x.style.display === "none") {
    x.style.display = "block";

    y.style.display = "none";
  } else {
    x.style.display = "none";
  }
}

function myFunction1() {
  var x = document.getElementById("mydiv1");
  var y = document.getElementById("mydiv");

  if (x.style.display === "none") {
    x.style.display = "block";

    y.style.display = "none";
  } else {
    x.style.display = "none";
  }
}
<select>
    <option value="Degree" onclick="myFunction()">Degree</option>
    <option value="Diploma" onclick="myFunction1()">Diploma</option>
</select>
<div id="mydiv" style="display:none;">
  <div>
    <label class="switch">
            <input type="checkbox" name="subject[]" value="Subject-1" id="myCheck" onclick="Function()">
            <span class="slider"></span>
        </label> Subject-1
  </div>
</div>
<div id="mydiv1" style="display:none;">
  <div>
    <label class="switch">
            <input type="checkbox" name="subject[]" value="Subject-1" id="myCheck" onclick="Function1()">
            <span class="slider"></span>
        </label> Subject-1
  </div>
</div>

Any suggestions? How can this code work on chrome?

Ashwini Nemade
  • 153
  • 1
  • 13
  • 1
    Possible duplicate of [How to use onClick() or onSelect() on option tag in a JSP page?](https://stackoverflow.com/questions/3487263/how-to-use-onclick-or-onselect-on-option-tag-in-a-jsp-page) – CBroe Jun 27 '18 at 12:08
  • no onchange is not working either... I tried this earlier – Ashwini Nemade Jun 27 '18 at 12:12
  • Hello :). What does "does not work" mean? Doesn't it trigger? Does it act weird? Are there errors in your dev console? Ah, and `option` needs to be a child of `select`. – CodeF0x Jun 27 '18 at 12:13
  • Let me guess, you changed this to ` – CBroe Jun 27 '18 at 12:15
  • Why do you have `option`s without a `select` element? – Turnip Jun 27 '18 at 12:16
  • yes I changed it to – Ashwini Nemade Jun 27 '18 at 12:17

2 Answers2

0

The cause is your bad script type. In actual fact it'd work without the attribute, but otherwise change it to:

 <script type="application/javascript">
    function myFunction() {
      var x = document.getElementById("mydiv");
      var y = document.getElementById("mydiv1");

      if (x.style.display === "none") {
          x.style.display = "block";

          y.style.display="none";
      } else {
          x.style.display = "none";
      }
    }
    function myFunction1() {
      var x = document.getElementById("mydiv1");
      var y = document.getElementById("mydiv");

      if (x.style.display === "none") {
          x.style.display = "block";

          y.style.display="none";
      } else {
          x.style.display = "none";
      }
    }
 </script>
draxil
  • 64
  • 3
0

You edited it now, but at the beginning you where missing that a option element has to be child of a select element.

To your second problem:

You can't fire functions using onclick and onchange on option elements. You could fire a function by adding onchange on your select that fires, based on the input, either myFunction() or myFunction1() like this:

function someFunction() {
  var select = document.querySelector('select');
  var option = select.options[select.selectedIndex].value;

  if (option == "Degree") {
    myFunction();
  } else if (option == "Diploma") {
    myFunction1();
  } else {
    document.getElementById('mydiv').style.display = "none";
    document.getElementById('mydiv1').style.display = "none";
  }
}

function myFunction() {
  var x = document.getElementById("mydiv");
  var y = document.getElementById("mydiv1");

  if (x.style.display === "none") {
    x.style.display = "block";

    y.style.display = "none";
  } else {
    x.style.display = "none";
  }
}

function myFunction1() {
  var x = document.getElementById("mydiv1");
  var y = document.getElementById("mydiv");

  if (x.style.display === "none") {
    x.style.display = "block";

    y.style.display = "none";
  } else {
    x.style.display = "none";
  }
}
<select onchange="someFunction()">
  <option>Select something</option>
  <option value="Degree">Degree</option>
  <option value="Diploma">Diploma</option>
</select>
<div id="mydiv" style="display:none;">
  <div>
    <label class="switch">
            <input type="checkbox" name="subject[]" value="Subject-1" id="myCheck" onclick="Function()">
            <span class="slider"></span>
        </label> Subject-1
  </div>
</div>
<div id="mydiv1" style="display:none;">
  <div>
    <label class="switch">
            <input type="checkbox" name="subject[]" value="Subject-1" id="myCheck" onclick="Function1()">
            <span class="slider"></span>
        </label> Subject-1
  </div>
</div>
CodeF0x
  • 2,624
  • 6
  • 17
  • 28