首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在data-files属性中显示复选框值

在data-files属性中显示复选框值
EN

Stack Overflow用户
提问于 2021-10-14 05:06:53
回答 3查看 70关注 0票数 2

我正在做下载选择多文件功能。我有一个关于如何将我选择的复选框中的值放入data-files属性的问题。目前,我只能将复选框中的值放入输入中。

下面是我的代码:

代码语言:javascript
复制
$('#multiselect-drop input').change(function() {
  var s = $('#multiselect-drop input:checked').map(function() {
    return this.value;
  }).get().join(' ');
  $('#results').val((s.length > 0 ? s : ""));
});
代码语言:javascript
复制
<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>

输出结果如下图所示,它将根据我的勾选来选择输入中的值。

实际上,我希望结果是我选中的复选框中的值放入data-files属性中。如下所示的示例结果:

代码语言:javascript
复制
<button id="download-button" class="btn btn-primary btn-xs" data-files="file/john.jpeg file/important.pdf file/company.pdf">Download</button>

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-14 07:24:39

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

代码语言:javascript
复制
$('#download-button').attr('data-files', (s.length > 0 ? s : ""));

然后变成:

代码语言:javascript
复制
$('#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
EN

Stack Overflow用户

发布于 2021-10-14 08:44:04

并不是所有的东西都必须以jQuery的方式访问、读取或写入。使用HTMLElementdataset属性...

代码语言:javascript
复制
$('#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;
});
代码语言:javascript
复制
<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>

票数 2
EN

Stack Overflow用户

发布于 2021-10-14 05:40:50

使用这种方法,您可以将值设置为data-files并从中获取值。

代码语言:javascript
复制
 $('#download-button').attr('data-files', (s.length > 0 ? s : ""));
    var a = $('#download-button').data('files'); 

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

代码语言:javascript
复制
         <!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>

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69565346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档