【问题标题】:How to add attributes to a variable on the selection of multiple checkboxes如何在选择多个复选框时向变量添加属性
【发布时间】:2021-08-28 10:21:11
【问题描述】:

嗨,我有一个看起来像这样的网格:

  Serial No                  Document Name       Attachment
1(checkbox)                  abc               (img)
2(checkbox)                   xyz               (img)
3(checkbox)                   uio               (img)
4(checkbox)                   pop               (img)

当您单击附件上的 img 时,它会打开一个对话框,其中附加了多个文档。每个文档都有一个复选框。

现在我想要做的是,如果用户选择了这些复选框,那么它应该将属性 documentcode 添加到变量中,类似地,如果用户检查另一个文档,它会将属性附加到该变量,从而形成一个字符串。此外,如果用户选择针对序列号 1 的复选框,则针对该相关对话框的复选框也会被选中。所以在这种情况下,我也想附加属性。

为此,我在对话框的复选框上添加了一个onclick功能

          if ($(el).is(':checked')) 
            {
                docCodes += DocumentCode + '♦';
            }

        }

现在,当我在对话框中选择复选框时,它会附加文档代码,但是当我取消选中它时,它应该删除没有发生的文档代码。我该怎么做呢?同样在父复选框上,属性也应该被附加

【问题讨论】:

  • 那么这个“对话框”究竟是什么?它只是一个prompt()吗?来自插件的东西?你已经有工作了吗?
  • @zer00ne 用户针对每个文件名浏览上传文件,附件基本都显示在附件中。
  • 是的,还是太模糊了,需要具体说明才能帮助您。你所描述的可能是任何东西。我们需要知道确切地这些对话框是如何制作的,它们来自哪里等等。
  • @zer00ne 您好,对于 html,您可以查看此链接。你可以运行代码sn -p 你会发现我在说什么stackoverflow.com/questions/67931708/…

标签: javascript jquery checkbox


【解决方案1】:

你可以在else中做一个字符串替换

var docCodes = '';
function addAttributes(docID, CdCode, el) {
  var str = docId + '♦';

  if ($(el).is(':checked')) {
    docCodes += str;
  } else {
    docCodes = docCodes.replace(str, '');
  }

  console.log(docCodes);
}

【讨论】:

  • 您的代码适用于我取消选中的部分,相关的文档代码将从字符串中删除。正如我的问题中提到的,在选择针对序列号 1 的复选框时,我也想做同样的事情。当我选择序列号 1 时,对话框中的复选框会自动勾选。因此,在这种情况下,我也希望附加这些文档代码。由于此函数是在对话框的复选框上调用的。那么我该如何实现呢? @charliefl
  • 在我看来,您最好使用对象而不是操作字符串。您可以在需要时轻松地从对象/数组构建字符串。一些示例 html 作为 minimal reproducible example 将有助于更好地理解这一点
  • 您好,您可以查看此链接以获取 html stackoverflow.com/questions/67931708/… @charlietfl
猜你喜欢
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多