我想将多个 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);
});
我的问题是
谢谢。
答案 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 []中,之后将数组分配给隐藏字段。