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

How to get multiple checkbox value and assign to hidden field

本文关键字:分配 字段 隐藏 复选框 何获取 获取      更新时间:2023-09-26

我想将多个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);
    });

我的问题是

  • 如何将值设置为ids

谢谢。

中的标记没有属性value。您可以在此处检查表单标记的属性。

但是,您可以使用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 }"/>

通过创建多个<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.
});

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

 <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))将循环所有复选框并存储在数组[]中,然后将数组分配给隐藏字段。