为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用onchange()清除select中的innerHTML选项?

如何使用onchange()清除select中的innerHTML选项?

温温酱 2023-09-18 10:35:30
我有两个选择下拉菜单。当我在第一个选择下拉列表中选择一个选项时,第二个选择下拉列表中的选项将显示取决于第一个下拉列表中所选的值。JavaScript:function selectorView() {    var namaServis = document.getElementById('namaServis').options;    var jenisServis = document.getElementById('jenisServis').value;    if (jenisServis == 'ringan') {        var teks = ["Pemeriksaan lampu", "Pemeriksaan kelayakan ban", "Pemeriksaan roda", "Pemeriksaan rem", "Pemeriksaan oli", "Pemeriksaan busi", "Penyetelan Gas", "Pemeriksaan Rantai",            "Pemeriksaan Oli Gear", "Pemeriksaan Kopling"];        teks.forEach(function (el) {            var divNamaServis = document.getElementById('namaServis');            var option = document.createElement('option');            option.innerText = el;            divNamaServis.appendChild(option);        });        console.log(namaServis);    }    else if (jenisServis == 'berat') {        var teks = ["Pemeriksaan kebocoran klep", "Membersihkan ruang bakar & piston", "Skur Klep"];        teks.forEach(function (el) {            var divNamaServis = document.getElementById('namaServis');            var option = document.createElement('option');            option.innerText = el;            divNamaServis.appendChild(option);        });        console.log(jenisServis.length);    }}HTML:<label for="jenisServis">Jenis Servis</label><br>            <select onchange="selectorView()" name="jenisServis" id="jenisServis">                <option value="" disabled selected>Choose one..</option>                <option value="berat">Berat</option>                <option value="ringan">Ringan</option>            </select><br>            <label for="namaServis">Nama Servis</label><br>            <select name="namaServis" id="namaServis">                <option value="" disabled selected>Choose one..</option>            </select>这是演示: https: //jsfiddle.net/scn3Lb2o/5/问题是,当我在第一个下拉列表中选择一个选项时,然后选择另一个选项,第二个下拉列表中的选项将重复。有人可以帮忙吗?
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

在附加新内容之前使用它来清除选择中的选项

document.getElementById('namaServis').options.length = 0;


查看完整回答
反对 回复 2023-09-18
?
慕斯王

TA贡献1864条经验 获得超2个赞

您应该在第一个选择的每次更改时删除除第二个选择中的第一个之外的所有选项。另外,您不应该在if和else if#namaServis块内多次引用相同的元素 ( ) :


function selectorView() {

  var namaEl = document.getElementById('namaServis');

  while (namaEl.childNodes.length > 2) { // remove all option except the first

    namaEl.removeChild(namaEl.lastChild); 

  }

  

  var jenisServis = document.getElementById('jenisServis').value;


  if (jenisServis == 'ringan') {

    var teks = ["Pemeriksaan lampu", "Pemeriksaan kelayakan ban", "Pemeriksaan roda", "Pemeriksaan rem", "Pemeriksaan oli", "Pemeriksaan busi", "Penyetelan Gas", "Pemeriksaan Rantai",

        "Pemeriksaan Oli Gear", "Pemeriksaan Kopling"];

    teks.forEach(function (el) {

      var option = document.createElement('option');

      option.innerText = el;

      namaEl.appendChild(option);

    });

    //console.log(namaServis);

  }

  else if (jenisServis == 'berat') {

    var teks = ["Pemeriksaan kebocoran klep", "Membersihkan ruang bakar & piston", "Skur Klep"];

    teks.forEach(function (el) {

      var option = document.createElement('option');

      option.innerText = el;

      namaEl.appendChild(option);

    });

    //console.log(jenisServis.length);

  }

}

<label for="jenisServis">Jenis Servis</label><br>

<select onchange="selectorView()" name="jenisServis" id="jenisServis">

    <option value="" disabled selected>Choose one..</option>

    <option value="berat">Berat</option>

    <option value="ringan">Ringan</option>

</select><br>

<label for="namaServis">Nama Servis</label><br>

<select name="namaServis" id="namaServis">

    <option value="" disabled selected>Choose one..</option>

</select>


查看完整回答
反对 回复 2023-09-18
  • 2 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信