如何获取多个复选框值并分配给隐藏字段

时间:2016-04-29 09:17:15

标签: javascript jquery html arrays spring-mvc

我想将多个 id 存储到隐藏字段。 所以值能够绑定到控制器。

<form:hidden id="ids" path="ids" value="${ids }"/>

当点击按钮删除时,将调用jquery删除行。

var deleteIds = [];
    $("#deleteRow").on('click', function() {
        deleteIds = $('.case:checkbox:checked').val();
        $('.case:checkbox:checked').parents("tr").remove();
        $('#ids').val(deleteIds);
    });

我的问题是

  • 如何将值设置为 ID

谢谢。

3 个答案:

答案 0 :(得分:1)

标签来自没有属性value。您可以检查表单标记here的属性。

但是,您可以使用jQuery修改自定义属性。这是一个工作小提琴:

var deleteIds = [];

deleteIds = ["1","2","3","4"];

$('#ids').attr("value",deleteIds);

alert($('#ids').attr("value"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="ids" path="ids" value="${ids }"/>

答案 1 :(得分:0)

通过创建多个<form:hidden/>,您可以获得所需内容。我假设您在单击#deleteRow时删除了表行,并将这些ID的表单提交给服务器,因此我们可以按照以下方式进行操作。

因为我甚至不知道你的html结构,所以我只是试图修改你的脚本,可能对你有帮助;)

var deleteIds = [];
$("#deleteRow").on('click', function() {
    $('#ids').remove();
    deleteIds = $('.case:checkbox:checked').val();
    $('.case:checkbox:checked').parents("tr").remove();
    for (var i = 0; i < deleteIds.length; i++) {
        // formId should be replaced to your form id
        $('#formId').append('<form:hidden id="ids" path="ids" value="' + deleteIds[i] +'"/>');
    }
    // $('#formId').submit(); comment this line, cause there is another button to submit form.
});

答案 2 :(得分:0)

我能够将倍数值设置为隐藏字段。回答如下。

 <form:hidden id="ids" path="ids" value="${ids }"/>



$("#deleteRow").on('click', function() {
                var deleteIds = [];
                $('.case:checkbox:checked').each(function(i){
                    if($('#ids').val() != ''){
                deleteIds[i] = $('#ids').val() + "," + $(this).val();
            }else{
                deleteIds[i] = $(this).val();
            }
         });
        $('#ids').attr("value",deleteIds);
  });

each(function(i))将循环所有复选框并存储在array []中,之后将数组分配给隐藏字段。