关于前端下拉框(select) 联动

6 篇文章 0 订阅
3 篇文章 0 订阅

select 联动一般是通过onchange 实现的,jquery中 就是change方法

在项目中遇到需要select联动的情况,在select的值发生变化后,页面的其他元素也随之变化,

当时遇到问题就是明明取到了值,然而却没写到页面。

经过排查: 

是由于取值是通过ajax请求取到的,由于ajax请求默认为异步的

所以会出现先向页面写值,而后再ajax取到值的情况。

解决方法:ajax请求改为同步 async:false

 

这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。 
而异步则这个AJAX代码运行中的时候其他代码一样可以运行。 
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过JavaScript来实现下拉框联动,具体思路如下: 1. 在HTML中定义两个下拉框,一个是父级下拉框,一个是子级下拉框; 2. 在JavaScript中定义一个联动函数,该函数绑定父级下拉框的onchange事件,每次父级下拉框选项改变时,都会重新生成子级下拉框的选项; 3. 在联动函数中,首先清空子级下拉框的选项,然后根据父级下拉框选中的值,从后端获取对应的子级选项,再将子级选项添加到子级下拉框中; 4. 最后,将联动函数绑定到父级下拉框的onchange事件中即可。 具体实现代码如下: HTML部分: ``` <label for="parent_select">父级下拉框:</label> <select id="parent_select"> <option value="">请选择</option> <option value="A">选项A</option> <option value="B">选项B</option> <option value="C">选项C</option> </select> <label for="child_select">子级下拉框:</label> <select id="child_select"> <option value="">请选择</option> </select> ``` JavaScript部分: ``` <script> var parent_select = document.getElementById("parent_select"); var child_select = document.getElementById("child_select"); parent_select.onchange = function() { // 清空子级下拉框的选项 child_select.options.length = 0; // 获取父级下拉框选中的值 var parent_value = parent_select.value; // TODO: 根据父级选项获取对应的子级选项 // 将子级选项添加到子级下拉框中 child_select.options.add(new Option("子级选项A", "A")); child_select.options.add(new Option("子级选项B", "B")); child_select.options.add(new Option("子级选项C", "C")); }; </script> ``` 其中,TODO部分需要通过Django等后端框架从数据库中获取对应的子级选项,此处只是示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值