E8-写了一个方法,处理一个表单里有多组需要实现单选或复选的复选框

小明 2025-04-27 22:06:21 4

起因

今天同事发���需求,要做一个工作流,其中表单里有几组选项。在纸质单上是留出位置画勾选择的。简单的聊了一下对填报的要求,要求有的组要控制单选,有的组还不需要制多选。用文字来描述很晦涩,看到表单估计小伙伴们就知道什么意思了。表单如下图,其中“运输方式”和“运费承担”的选项之间是要做单选控制的,付款方式则不用。

经过

选去回顾了去年处理复选框的经历,看看有哪个能直接拿过来用的。

E8-怎么写一段JS去控制CheckBox_js监听checkbox变化-CSDN博客

E8-控制一组CheckBox的单选_泛微e8 触发checkbox事件-CSDN博客

E8-怎么实现控制一组CheckBox中至少选一个_qt 如何判断两个checkbox 同时只能选中一个-CSDN博客

如果按以上这些,拼凑一下也能实现,但代码要写很长,且复用性不强。

于是冒出了一个想法,尝试写一个方法,去处理已知的关于复选框以及文本的各种控制。

结果

按照以上思路,写了如下程序。注释里写了代码的作用。喜欢的小伙伴们请关注、点赞、评论。大家的鼓励是我持续创作的动力。感谢!

  // 定义存放复选按钮的数组1:运输方式

  var checkBoxArray1 = [];

  checkBoxArray1.push( $("#field11535"));        //汽运送货

  checkBoxArray1.push( $("#field11536"));        //客户自提

  // 定义存放复选按钮的数组2:运费承担

  var checkBoxArray2 = [];

  checkBoxArray2.push( $("#field11537"));        //供方承担

  checkBoxArray2.push( $("#field11538"));        //需方承担

  // 定义存放复选按钮的数组2:付款方式

  var checkBoxArray3 = [];

  checkBoxArray3.push( $("#field11540"));        //电汇

  checkBoxArray3.push( $("#field11541"));        //承兑

  checkBoxArray3.push( $("#field11542"));        //其它

  // 运输方式的字符串拼接,专门负责拼接字符串的。

  // 参数1:当前控件,参数2:数组,参数3:文件框,参数4:选择方式(单选:S;多选:M)

  function checkboxProcess(obj, checkBoxArray, strBox,  selectMode) {

        str = "";

    // 如果是单选模式,检查当前复选框的选中状态,如果当前复选框是选中状态,遍历数组,取消其它复选框的选中状态。

    if(selectMode == "S") {

      if(obj.prop("checked")) {

        for(var index = 0; index

The End
微信