后端返回枚举数据结构:

jquery field jquery field 枚举_下拉框

前端html:

<label for="planGrade">预案级别</label>
  <select class="form-control enum" id="planGrade" name="planGrade" data-options="url:/manage/enum/getPlanGradeEnum">
    <!-- <option value="1">当前在线</option>
    <option value="0">已下架</option>-->
  </select>
</div>

主要是在select 标签class上加了enum,以及自定义data-options属性

前端enum.js:

// 枚举下拉框初始化,并把枚举存到自定义枚举容器中
enumStorage = {};
initEnum(enumStorage);

function initEnum(enumStorage) {
    $("select.enum").each(function () {
            let param =  $(this).attr("data-options");
            let enumName = ""+$(this).attr("name")+"";
            let url = param.replace("url:","");
            // console.log(param.replace("url:",""))
            let options = "";
            let itemStorage = {};
            doGet(url,(data)=>{
                $.each(data,function(index,element) {
                    itemStorage[element.code] = element.desc;
                    options += "<option value="+element.code+">"+element.desc+"</option>";
                });
                enumStorage[enumName] = itemStorage;
                $(this).html(options);
            });

        }
    )
}

最终图示:

jquery field jquery field 枚举_自定义_02

 

最后:如果是像vue,react 组件式的前端框架,可以抽取代码端作为组件,然后页面向组件传参,做成通用的下拉框选择器。