1

我太……接近了,但被困在一件对你来说可能真的很简单的小事上。这个想法是将每个复选框的值添加到隐藏字段的值中。

当我添加第二个(或更多表单)和他们自己的变量 ID 时,它就崩溃了。我知道 jQuery 代码的第一部分有效,但我不知道如何loader_id进入这里。

$('#fileset-'+ loader_id +' input').click(updateFileField);

认为这就是我搞砸的地方,因为如果我在这里对 id 进行硬编码,其余的工作就很好。

以下是完整代码,也可以在这里找到

<div id="fileset-1" class="fileset">
<input type="checkbox" value="set1">
<input type="checkbox" value="set2">
<input type="checkbox" value="set3">
</div>  
File 1 <input type="text" val="" id="file-1" class="filestosend" /><br />

<div id="fileset-2" class="fileset">
<input type="checkbox" value="seta">
<input type="checkbox" value="setb">
<input type="checkbox" value="setc">
</div> 
File 2 <input type="text" val="" id="file-2" class="filestosend" />​

这是 jQuery 部分

 function updateFileField() {

 var allVals = [];
 var loader_id = $(this).parent('div').attr('id').replace('fileset-', '');
     $('#fileset-' + loader_id + ' :checked').each(function() {
       allVals.push($(this).val());
     });         
     $('#file-' + loader_id ).val(allVals);
  }
 $(function() {
     $('#fileset-'+ loader_id +' input').click(updateFileField);

});

谢谢你的帮助!

4

2 回答 2

3

是你一直在寻找的吗?

$(".fileset :checkbox").on("change", function() {
    var div = $(this).parent();
    var id = div.attr("id").split("-")[1];
    var values = [];
    div.find(":checked").each(function() {
        values.push(this.value);
    });
    $("#file-" + id).val(values.join(","));
});

演示:http: //jsfiddle.net/fXMrj/52/

于 2012-05-25T19:06:12.820 回答
0

以下部分中的此处loader_id未定义。

$(function() {
     $('#fileset-'+ loader_id +' input').click(updateFileField);

});
于 2012-05-25T19:10:00.980 回答