2016-04-29 83 views
2

我想將多個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

謝謝。

+0

您想檢索您即將刪除的字段的值嗎? – rafaelcpalmeida

+0

嗨@rafaelcpalmeida,我能夠通過這個'deleteIds = $('。case:checkbox:checked')。val();來檢索值:'我想知道如何將這個deleteIds值存儲到隱藏字段中。並且deleteIds可以很多。 – user1238353

回答

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))的將循環所有的複選框並存儲在陣列[],在此之後分配陣列隱藏字段。

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 }"/>

+0

嗯。其實我想將複選框(Tick 2複選框)的值存儲到隱藏字段。所以控制器端能夠檢索隱藏的值。謝謝。 – user1238353

+0

你可以存儲任何你想要的值,這裏只是爲了測試:) – rafaelcpalmeida

+0

嗨@rafaelcpalmeida,我仍然無法將多個ID存儲到$ {ids}中。 ('click',function(){',我需要保留這個'ids'(假設有2個ID,「1」, 「2」),直到'SUBMIT'按鈕被點擊,然後發佈到後端。 – user1238353

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. 
}); 
+0

我得到刪除按鈕來刪除表中的行,所以它會調用'$ ('#deleteRow')。on('click',function(){' 然後點擊SUBMIT按鈕提交到服務器,所以服務器必須檢索所有的已刪除的ID – user1238353

+0

@ user1238353如果你使用SpringMVC作爲你的服務器,它可以接受多個'ids'作爲一個數組來處理你的過程。 – Blank

+0

Hi @Reno,是的,你是對的,我已經發布了我的答案。 – user1238353

相關問題