当下拉框A的值改变时,下拉框B的值也随之改变

ajax的小练习。持久层和业务层都很简单,主要是表现层。

1、控制器

 1 @RestController
 2 @RequestMapping("province")
 3 public class ProvinceController {
 4     @Autowired
 5     private IProvinceService service;
 6 
 7     @RequestMapping("findAll")
 8     public List<ProvinceBean> findAll(){
 9         return service.findAll();
10     }
11 
12     @RequestMapping("findById")
13     public ProvinceBean findById(int id){
14         return service.findByProvince(id);
15     }
16 }

2、表现层html+js

onchange()的用法(摘自网络):

当元素的值发生改变时,会发生 onchange 事件。

对于单选框和复选框,在被选择的状态改变时,发生 onchange 事件。

提示:该事件类似于 oninput 事件。不同之处在于 oninput 事件在元素值改变后立即发生,而 onchange 在元素失去焦点而内容发生改变后发生。另一个区别是 onchange 事件也适用于 <select> 元素。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script src="/html/axios.min.js"></script>
 7     <script>
 8         function $(id){
 9             return document.getElementById(id);
10         }
11 
12         window.onload = function change(){
13             axios.get("/province/findAll",null).then(e => {
14                 var info = e.data;
15                 var str = "";
16                 for (var i = 0;i < info.length;i++){
17                     var obj = info[i];
18                     str += `<option value= '${obj.id}'>${obj.name}</option>`;
19                 }
20                 $("province").innerHTML = str;
21             })
22         }
23 
24         function see(){
25             axios.get("/province/findById",{
26                 params:{
27                     id:$("province").value
28                 }
29             }).then(e => {
30                 var info = e.data;
31                 var str = "";
32                 for (var i = 0;i < info.list.length;i++){
33                     var obj = info.list[i];
34                     str += `<option value= '${obj.id}'>${obj.name}</option>`;
35                 }
36                 $("city").innerHTML = str;
37             })
38         }
39     </script>
40 </head>
41 <body>
42 省份:<select id="province" onchange="see()">
43      </select>
44 
45 城市: <select id="city">
46       </select>
47 </body>
48 </html>

 3、效果图

 

posted @ 2021-12-10 10:45  风过流隙  阅读(469)  评论(0编辑  收藏  举报