在数据文件属性中显示复选框值

Posted

技术标签:

【中文标题】在数据文件属性中显示复选框值【英文标题】:Show check box value in a data-files attribute 【发布时间】:2021-12-02 12:21:12 【问题描述】:

我正在做下载选择多文件功能。我对我选择的复选框中的值如何放入数据文件属性有疑问。目前我只能做的就是在input里面把checkbox里面的值打进去。

下面是我的代码:

$('#multiselect-drop input').change(function() 
  var s = $('#multiselect-drop input:checked').map(function() 
    return this.value;
  ).get().join(' ');
  $('#results').val((s.length > 0 ? s : ""));
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="results" style="width:60%;">

<div id="multiselect-drop">
  <input type="checkbox" value="file/john.jpeg">
  <input type="checkbox" value="file/important.pdf">
  <input type="checkbox" value="file/company.pdf">
</div>

<button id="download-button" class="btn btn-primary btn-xs" data-files="">Download</button>

输出结果如下图所示,它会按照我的勾选来选择输入中的值。

实际上,我希望结果是我选择的复选框中的值放入数据文件属性中。如下示例结果:

<button id="download-button" class="btn btn-primary btn-xs" data-files="file/john.jpeg file/important.pdf file/company.pdf">Download</button>

希望有人能指导我如何解决这个问题。谢谢。

【问题讨论】:

【参考方案1】:

首先你应该使用 attr() jQuery 方法,尝试将其设置为属性:

$('#download-button').attr('data-files', (s.length > 0 ? s : ""));

然后变成:

$('#multiselect-drop input').change(function() 
  var s = $('#multiselect-drop input:checked').map(function() 
    return this.value;
  ).get().join(' ');
  $('#results').val((s.length > 0 ? s : ""));
  $('#download-button').attr('data-files', (s.length > 0 ? s : ""));                               
);

【讨论】:

【参考方案2】:

并非所有内容都必须以 jQuery 方式访问、读取或写入。利用htmlElementdataset 属性...

$('#multiselect-drop input').change(function() 

  let s = $('#multiselect-drop input:checked').map(function() 
    return this.value;
  ).get().join(' ');

  $('#results')[0].value = s;
  $('#download-button')[0].dataset.files = s;
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" id="results" style="width:60%;">

<div id="multiselect-drop">
  <input type="checkbox" value="file/john.jpeg">
  <input type="checkbox" value="file/important.pdf">
  <input type="checkbox" value="file/company.pdf">
</div>

<button id="download-button" class="btn btn-primary btn-xs" data-files="">Download</button>

【讨论】:

【参考方案3】:

使用这种方式,您可以将值设置为数据文件并从中获取值。

 $('#download-button').attr('data-files', (s.length > 0 ? s : ""));
    var a = $('#download-button').data('files'); 

这是一个工作示例,希望对您有所帮助

         <!DOCTYPE html>
            <html>
            <head>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
            </head>
            <body>


            <input type="text" id="results" style="width:60%;">

            <div id="multiselect-drop">
              <input type="checkbox" value="file/john.jpeg">
              <input type="checkbox" value="file/important.pdf">
              <input type="checkbox" value="file/company.pdf">
            </div>

            <button id="download-button" class="btn btn-primary btn-xs" data-files="">Download</button>
            <script>
            $('#multiselect-drop input').change(function() 
              var s = $('#multiselect-drop input:checked').map(function() 
                return this.value;
              ).get().join(' ');
              $('#results').val((s.length > 0 ? s : ""));

              $('#download-button').attr('data-files', (s.length > 0 ? s : ""));
              
            );
            $('#download-button').on('click',function()
             var a = $('#download-button').data('files'); 
               alert(a)
            );
            </script>
            </body>
            </html>

【讨论】:

感谢您的回答。但是为什么data-files的属性没有出来我选择的值呢? 因为我右键单击检查元素以查看&lt;button id="download-button" class="btn btn-primary btn-xs" data-files="??????"&gt;Download&lt;/button&gt;中没有更多的数据文件值 但是使用这种方式,您可以将值设置为数据文件并在任何想要使用的地方使用它。 我看到数据文件中没有显示值,你能再检查一下吗? 如果通过添加 value="" 标签来检查输入字段的方式相同,它也不会被设置。

以上是关于在数据文件属性中显示复选框值的主要内容,如果未能解决你的问题,请参考以下文章

使用复选框显示数据库并将选定的数据查询到另一个 php 文件中

这是我插入数据库的图像。但它不会显示图像路径或文件夹中的图像?

用jquery把复选框checkbox选中的值放入input框中

在 PHP 中显示数据库中的复选框值

如何使用角度js根据数据库中的值设置复选框的选中属性

检索选定的节点不显示