首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于JavaScript的动态表单选择

基于JavaScript的动态表单选择
EN

Stack Overflow用户
提问于 2020-05-28 02:51:02
回答 1查看 835关注 0票数 0

我的数据库表中有两个类别。

女性时尚与男性时尚

在男式时尚下,我有男式鞋

在女性时尚下,我有女装包

我想要一个我将在HTML表单选择中使用的javascript,这样当一个人选择“女装”时,他/她会看到女性时尚下的物品列表,比如第二种形式中的“女人包”,或者当一个人选择“男人时尚”时,他/她也会在第二种形式中看到“男士鞋”下面的商品列表。

样本

代码语言:javascript
复制
<form class="form">
  <div class="form-group">
    <select id="box1" name="num">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>

    <select id="box2" name="letters">
      <option value="a">A</option>
      <option value="b">B</option>
    </select>
  </div>
</form>

,那么我有这个

代码语言:javascript
复制
$("#box1").on('change', function () {
  var value = $(this).val();

  if (value === "1" || value === "2") {
      $("#box2").show();
  } else {
      $("#box2").hide();
  }
});

但是不知道如何使用数据库值来实现它

请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 03:46:54

将干哲学应用于此代码

这只是一个测试,但这是你想要的行为吗?

HTML代码

代码语言:javascript
复制
    <form class="form">
  <div class="form-group">
    <select id="collections" name="collection">
      <option>Select a value</option>
      <option value="man">Man</option>
      <option value="woman">Woman</option>
    </select>

    <select id="box2" name="collections-items">
    </select>
  </div>
</form>

JS代码

代码语言:javascript
复制
let chooseCollections = document.querySelector('#collections')
let selectItems = document.querySelector('#box2')

let manCollection = {
  categories: ["Shoes", "Shirt"]
}

let womanCollection = {
  categories: ["Dress", "Shirt"]
}

chooseCollections.addEventListener('change', (e) => {
  selectItems.querySelectorAll('*').forEach(el => el.remove());
  selectItems.style.display = "none"

  if(e.target.value === "man") {
    selectItems.style.display = "block"
    for(let i = 0; i < manCollection.categories.length; i++) {
      var option = document.createElement('option')
      var value = manCollection.categories[i]
      option.value = value
      option.innerHTML = value
      selectItems.appendChild(option)
    }
  }

  if(e.target.value === "woman") {
    selectItems.style.display = "block"
    for(let i = 0; i < womanCollection.categories.length; i++) {
      var option = document.createElement('option')
      var value = womanCollection.categories[i]
      option.value = value
      option.innerHTML = value
      selectItems.appendChild(option)
    }
  }
})

CSS

代码语言:javascript
复制
#box2 {
  display: none;
}

我表示manCollection和womanCollection,就像数据库中的数据一样。这段代码不是优化的,可以更高效,但您可以从这一点开始。

https://jsfiddle.net/0aek49fr/1/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62056193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档