在 Java Web 專案(Hibernate 註解開發)中,新增產品頁面需實現「分類 → 子分類 → 品牌」多級聯動下拉選單。
@RestController
@RequestMapping("/api/category")
public class CategoryController {
@Autowired CategoryService service;
@GetMapping("/roots")
public List<Category> roots() { return service.findRoots(); }
@GetMapping("/children/{parentId}")
public List<Category> children(@PathVariable Long parentId) {
return service.findByParentId(parentId);
}
}
<link rel="stylesheet" href="easyui/themes/default/easyui.css">
<script src="jquery.min.js"></script>
<script src="easyui/jquery.easyui.min.js"></script>
<input id="c1" class="easyui-combobox"
url="/api/category/roots" valueField="id" textField="name"
panelHeight="auto">
<input id="c2" class="easyui-combobox"
valueField="id" textField="name" panelHeight="auto" disabled="true">
<input id="c3" class="easyui-combobox"
valueField="id" textField="name" panelHeight="auto" disabled="true">
$(function(){
$('#c1').combobox({
onSelect: function(rec){
$('#c2').combobox('clear').combobox('enable');
$('#c2').combobox('reload', '/api/category/children/' + rec.id);
$('#c3').combobox('clear').combobox('disable');
}
});
$('#c2').combobox({
onSelect: function(rec){
$('#c3').combobox('clear').combobox('enable');
$('#c3').combobox('reload', '/api/category/children/' + rec.id);
}
});
});
若不使用 EasyUI,可採用原生 `
利用 jQuery EasyUI Combobox 內建的 `url`、`reload` 方法,配合後端 RESTful API,能快速實現多級聯動下拉選單,程式碼簡潔且易維護。