javascript how to remove select option based on if else

Viewed 317

Hello I wrote code to remove 2 option values if d is equal to something

var d = document.getElementById("random").value
if(d == "A600")
    $("#randomtype option[value='aosp'],#randomtype option[value='oneui']").remove();

It removes it even if d is not equal to A600. How come?

var d = document.getElementById("random").value
if (d == "A600")
  $("#randomtype option[value='aosp'],#randomtype option[value='oneui']").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<select id="random" name="random">
  <option value="negative">Model</option>
  <option value="J710">J710X</option>
  <option value="J701">J701X</option>
  <option value="A320">A320X</option>
  <option value="G610">G610X</option>
  <option value="J600">J600X</option>
  <option value="A600">A600X</option>
  <option value="J737">J737X</option>
  <option value="M105">M105X</option>
</select>

<select id="randomtype" name="randomtype">
  <option value="negative">Variant</option>
  <option value="oneui">OneUI Non Treble</option>
  <option value="oneuit">OneUI Treble</option>
  <option value="aosp">AOSP Non treble</option>
  <option value="aospt">AOSP Treble</option>
</select>

Now it doesnt remove it at all hmm

4 Answers

You need to check for change in select :

$('#random').on('change', function() {
  var d = document.getElementById("random").value
  var optionExists = ($("#randomtype option[value='oneui']").length > 0);

  if (this.value == "A600") {
    $("#randomtype option[value='oneui']").remove();
    $("#randomtype option[value='aosp']").remove();
  } else if (!optionExists) {
    $('#randomtype').append("<option value='oneui'>OneUI Non Treble</option>");
    $('#randomtype').append("<option value='aosp'>AOSP Non treble</option>");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<select id="random" name="random">
  <option value="negative">Model</option>
  <option value="J710">J710X</option>
  <option value="J701">J701X</option>
  <option value="A320">A320X</option>
  <option value="G610">G610X</option>
  <option value="J600">J600X</option>
  <option value="A600">A600X</option>
  <option value="J737">J737X</option>
  <option value="M105">M105X</option>
</select>

<select id="randomtype" name="randomtype">
  <option value="negative">Variant</option>
  <option value="oneui">OneUI Non Treble</option>
  <option value="oneuit">OneUI Treble</option>
  <option value="aosp">AOSP Non treble</option>
  <option value="aospt">AOSP Treble</option>
</select>

Try to add curly brackets to if statement, like that

var d = document.getElementById("random").value
if(d == "A600") {
    $("#randomtype option[value='aosp'],#randomtype option[value='oneui']").remove();
}

It's simple:

$('#random').change(function () {
    var val = $(this).val();
    if (val === 'A600') {
        $("#randomtype option[value='aosp'], #randomtype option[value='oneui']").remove();
    }
});
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

<body>

  <select id="random" name="random">
      <option value="negative">Model</option>
      <option value="J710">J710X</option>
      <option value="J701">J701X</option>
      <option value="A320">A320X</option>
      <option value="G610">G610X</option>
      <option value="J600">J600X</option>
      <option value="A600">A600X</option>
      <option value="J737">J737X</option>
      <option value="M105">M105X</option>
  </select>

  <select id="randomtype" name="randomtype">
      <option value="negative">Variant</option>
      <option value="oneui">OneUI Non Treble</option>
      <option value="oneuit">OneUI Treble</option>
      <option value="aosp">AOSP Non treble</option>
      <option value="aospt">AOSP Treble</option>
  </select>

</body>

Use === operator to compare equal value in javascript.

if(d === "A600")
{
 //remove select option code here.
}
Related