jboit ai 平台开发工作记录(多选框和单选 框)下拉框

以下关于下拉框联动代码,关健代码红色标注,每句都有注释,

先整 理多选框:这儿用的是jboit  的组件,多选框的值绑定在一个隐藏域方便提交获取值

 

 

 

 

下面是下拉框 示例:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<!-- 定义表单,提交到admin/school/testForm,阻止默认提交行为 -->
<form id="schoolTestForm4" method="post" action="admin/school/testForm" onsubmit="return false;">
  <!-- 一级下拉菜单 -->
  <div class="form-group row">
    <label class="col-sm-2 col-form-label">一级</label>
    <div class="col">
      <!-- 一级下拉选择框 -->
      <select name="dic1" class="form-control"
        <!-- 自动加载数据 -->
        data-autoload      //第一级是自动加载,下面级不是,下面级是联动
        <!-- 数据加载URL -->
        data-url="admin/dictionary/poptions?key=level_multi"   
        <!-- 占位符文本 -->
        data-text="请选择"
        <!-- 初始值 -->
        data-value=""
        <!-- 是否级联 -->
        data-linkage="true"    联级,下面还有关联id 
        <!-- 级联时使用值的属性 -->
        data-value-attr="sn"
        <!-- 子级联下拉框的ID -->
        data-sonid="dic2">
      </select>
    </div>
  </div>
  <!-- 二级下拉菜单 -->
  <label class="col-sm-2 col-form-label">二级</label>
  <div class="col">
    <!-- 二级下拉选择框 -->
    <select id="dic2" name="dic2" class="form-control"
      <!-- 原始数据加载URL -->
      data-origin-url="admin/dictionary/soptionsByPsn?key=level_multi&pid="
      <!-- 数据加载URL -->
      data-url="admin/dictionary/soptionsByPsn?key=level_multi"
      <!-- 占位符文本 -->
      data-text="请选择"
      <!-- 初始值 -->
      data-value=""
      <!-- 级联时使用值的属性 -->
      data-value-attr="sn"
      <!-- 是否级联 -->
      data-linkage="true"
      <!-- 子级联下拉框的ID -->
      data-sonid="dic3">
    </select>
  </div>
  <!-- 三级下拉菜单 -->
  <label class="col-sm-2 col-form-label">三级</label>
  <div class="col">
    <!-- 三级下拉选择框 -->
    <select id="dic3" name="dic3" class="form-control"
      <!-- 原始数据加载URL -->
      data-origin-url="admin/dictionary/soptionsByPsn?key=level_multi&pid="
      <!-- 数据加载URL -->
      data-url="admin/dictionary/soptionsByPsn?key=level_multi"
      <!-- 占位符文本 -->
      data-text="请选择"
      <!-- 初始值 -->
      data-value=""
      <!-- 是否级联 -->
      data-linkage="true"
      <!-- 级联时使用值的属性 -->
      data-value-attr="sn"
      <!-- 子级联下拉框的ID -->
      data-sonid="dic4">
    </select>
  </div>
  <!-- 四级下拉菜单 -->
  <div class="form-group row">
    <label class="col-sm-2 col-form-label">四级</label>
    <div class="col">
      <!-- 四级下拉选择框 -->
      <select id="dic4" name="dic4" class="form-control"
        <!-- 原始数据加载URL -->
        data-origin-url="admin/dictionary/soptionsByPsn?key=level_multi&psn="
        <!-- 数据加载URL -->
        data-url="admin/dictionary/soptionsByPsn?key=level_multi"
        <!-- 占位符文本 -->
        data-text="请选择"
        <!-- 初始值 -->
        data-value=""
        <!-- 级联时使用值的属性 -->
        data-value-attr="sn">
      </select>
    </div>
  </div>
</form>

  以下是图片抓图

 

 

 

上面的url   是请求后端来的,后端的参考代码如下,只是参考,可能参数名字,有出入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  @UnCheck
// poptions方法,用于获取根级别的选项列表
public void poptions() {
    // 根据传入的key参数,渲染JSON数据
    renderJsonData(service.getRootoptionlistByTypeKey(get("key")));
}
 
/**
 * soptions方法,用于根据父类ID获取子级别的数据 *
 * @UnCheck 无检查注解,表示该方法不需要进行权限检查
 */
@UnCheck
public void soptions() {
    // 根据传入的key参数和pid参数,渲染JSON数据
    renderJsonData(service.getSonoptionListByTypeKey(get("key"), getLong("pid")));
}
 
/**
 * soptionsByPsn方法,用于根据父类SN获取子级别的数据
 *
 * @UnCheck 无检查注解,表示该方法不需要进行权限检查
 */
@UnCheck
public void soptionsByPsn() {
    // 根据传入的key参数和psn参数,渲染JSON数据
    renderJsonData(service.getSonoptionListByTypeKeyAndPsn(get("key"), get("psn")));
}

  

 附带一下多选

 关与多选后端的处理参考代码如下:因为隐藏域的值是数组,是很多id , 拼成

复制代码
// testForm方法,用于处理表单提交
public void testForm() {
    // 从请求中获取名为"schoolIds"的参数,该参数应该是一个以逗号分隔的字符串
    String schoolIds = get("schoolIds");
    
    // 将字符串转换为Long类型的数组,这里假设JBoltArrayUtil是您项目中用于处理数组的工具类
    // toDisLong方法应该是将字符串按照指定分隔符分割并转换为Long数组的方法
    // 注意:这里的逗号应该是英文逗号,并且split方法的参数应该是正确的
    Long[] ids = JBoltArrayUtil.toDisLong(schoolIds, "split: \"", "\",");
    
    // 渲染JSON数据,这里假设qetJBoltPara是您项目中用于获取参数的方法
    // 注意:这里的qetJBoltPara应该是一个方法调用,并且方法名可能有误,可能是getJBoltPara或其他
    renderJsonData(getJBoltPara());
}
复制代码

 单选 框

原生bootstrap 单选框使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- 表单定义,ID为radioForm1,提交到admin/school/testForr,提交方法为post -->
<form id="radioForm1" action="admin/school/testForr" method="post" onsubmit="return false;">
  <!-- 性别选择表单组 -->
  <div class="form-group row">
    <!-- 性别标签 -->
    <label class="col-sm-2 col-form-label">性别</label>
    <div class="col">
      <!-- 男性单选按钮 -->
      <div class="radio radio-primary radio-inline">
        <!-- 输入字段,类型为radio,名称为sex,值为1,且默认选中 -->
        <input checked id="sex1" type="radio" name="sex" value="1"/>
        <!-- 标签说明 -->
        <label for="sex1">男</label>
      </div>
      <!-- 女性单选按钮 -->
      <div class="radio radio-primary radio-inline">
        <!-- 输入字段,类型为radio,名称为sex,值为2 -->
        <input id="sex2" type="radio" name="sex" value="2"/>
        <!-- 标签说明 -->
        <label for="sex2">女</label>
      </div>
    </div>
  </div>
  <!-- 提交按钮 -->
  <div class="mt-5">
    <!-- 按钮样式为primary,类型为button,点击时触发ajaxSubmitForm函数,传入表单ID -->
    <button class="btn btn-primary" type="button" onclick="ajaxSubmitForm('radioForm1')">测试提交</button>
  </div>
</form>

  使用封装好的组件的用法就简单 了

复制代码
<!-- 表单定义,ID为radioForm2,提交到admin/school/testForm,提交方法为post -->
<form id="radioForm2" action="admin/school/testForm" method="post" onsubmit="return false;">
  <!-- 表单组行,包含数据属性用于动态生成单选按钮 -->
  <div class="form-group row"
    data-radio
    data-url="admin/dictionary/options?key=sex" <!-- URL用于获取字典数据 -->
    data-name="sexFromDic" <!-- 数据字典名称 -->
    data-inline="true" <!-- 单选按钮是否内联显示 -->
    data-label="性别(字典)" <!-- 表单组的标签 -->
    data-width="col-sm-2,col" <!-- 标签和输入字段的宽度 -->
<!-- 其它属性用与指定向端传指时的取那个值 -->
    data-default="1'  默认值
data-value-attr="sn" 取对象上的sn 这是一个属性
data-text-attr="id,sn,name" 显示在页面上的标签名字
data-disabled="true“ 禁 用
data-rule="radio" 必选一项,否则飘红,前提是没有默认项
data-handler="alert" 回调方法

> </div> <!-- 提交按钮 --> <div class="mt-5"> <!-- 按钮样式为primary,类型为button,点击时触发ajaxSubmitForm函数,传入表单ID --> <button class="btn btn-primary" type="button" onclick="ajaxSubmitForm('radioForm2')">测试提交</button> </div> </form>
复制代码

 

 其它功能  对齐,

 

 

 

posted @   谢双元小号  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示