我有一个下拉列表,根据 Select 的值,下一个下拉列表显示特定的值.当更改第一个列表的值,然后返回到旧值时,第二个列表不会更新.保持之前 Select 的相同值.当我更改第一个列表的值时,如何使第二个列表更新为默认标记为选中的值?

我希望你们能理解我,谢谢你们抽出时间.

以下是代码:

    <select onchange="showprd('hidevalue', this), showprd2('hidevalue2', this)">
<option value="" disabled selected hidden>Selecione</option>
<option value="0">São Francisco</option>
<option value="1">Bradesco</option>
</select>
<br>
<br>
<select hidden id="hidevalue">
    <option value="" disabled selected hidden>Selecione o produto</option>
    <option value="pleno">Pleno</option>
    <option value="integrado">Integrado</option>
    </select>
    <select hidden id="hidevalue2">
        <option value="" disabled selected hidden>Selecione o produto</option>
        <option value="junior">Junior</option>
        <option value="senior">Senior</option>
        </select>
</body>
<script>
   function showprd(id, elementValue) {
      document.getElementById(id).style.display = elementValue.value == 0 ? 'block' : 'none';
   }
   function showprd2(id, elementValue) {
      document.getElementById(id).style.display = elementValue.value == 1 ? 'block' : 'none';
   }
</script>

推荐答案

如果我理解正确,预期的行为是当第二个或第三个<select>被隐藏时,<select>应该回到默认状态(第一个<option>?).如果是,则从第二个和第三个<select>的第一个<option>中移除disabledhidden,然后添加以下内容:

selectObj.hidden = true;
selectObj.selectedIndex = 0;

下面的例子有一个<form>(如果你有多个表单控件,请始终使用一个表单).通过使用HTMLFormElement接口,我重写了代码,可以用很少的代码引用所有form controls.Inline event handlers are garbage所以不要这样做:

<select id='sel' onchange="lame(this)">

而是这样做:

selObj.onchange = good;

selObj.addEventListener('change', better)

阅读eventsevent delegation

const UI = document.forms.UI;

UI.onchange = showSelect;

function showSelect(e) {
  const sel = e.target;
  const IO = this.elements;

  if (sel.id === "A") {
    if (sel.value === '0') {
      IO.B.hidden = false;
      IO.C.hidden = true;
      IO.C.selectedIndex = 0;
    } else {
      IO.B.hidden = true;
      IO.B.selectedIndex = 0;
      IO.C.hidden = false;
    }
  }
}
<form id='UI'>
  <select id='A'>
    <option disabled selected hidden>Pick</option>
    <option value="0">0</option>
    <option value="1">1</option>
  </select>
  <br>
  <br>
  <select id="B" hidden>
    <option selected>Pick B</option>
    <option value="0">0</option>
    <option value="1">1</option>
  </select>
  <select id="C" hidden>
    <option selected>Pick C</option>
    <option value="0">0</option>
    <option value="1">1</option>
  </select>
</form>

Javascript相关问答推荐

zoom svg以适应圆

如何才能拥有在jQuery终端中执行命令的链接?

通过在页面上滚动来移动滚动条

Cookie中未保存会话数据

如何在Angular中插入动态组件

WebGL 2.0无符号整数输入变量

你怎么看啦啦队的回应?

虚拟滚动实现使向下滚动可滚动到末尾

在使用HighChats时如何避免Datatables重新初始化错误?

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

一个实体一刀VS每个实体多刀S

在Odoo中如何以编程方式在POS中添加产品

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

如何更改Html元素S的 colored颜色 ,然后将其褪色为原始 colored颜色

我怎样才能得到一个数组的名字在另一个数组?

如何使pdf.js上的文本呈现为可选?

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;

如何判断字符串是否只包含特定字符串

如何在chartjs-plugin-data Labels v2.1.0插件中设置照片?