簡體   English   中英

jQuery復選框-僅獲取已選中復選框的值

[英]jquery checkbox - get the value of only the checked checkbox

 $(function() { $('input[type=checkbox]').change( function() { if ($(this).is(':checked')) { document.getElementById("chk_option").value += this.value + ","; alert($("#chk_option").val()); } else { document.getElementById("chk_option_remove").value += this.value + ","; } } ); }); 
 <div> <center> <form id="form_tarif" class="form-horizontal" style="padding-top:57px;" action="pricesinput" method="POST"> <input type="hidden" id="chk_option" name="chk_option"> <input type="hidden" id="chk_option_remove" name="chk_option_remove"> <c:forEach items="${option_tarif_list}" var="option_tarif" varStatus="loop"> <div class="checkbox1"> <label> <input type="checkbox" name="tarif_inclue[]" value="${option_tarif.id}" class="checkboxchk" id="option_tarif_chk_${option_tarif.id}">${option_tarif.libelle} </label> </div> </c:forEach </form> </center> </div> 

你好

您能否通過以下JS幫助我。 我只需要獲取選中復選框的值,並在ID #chk_option中使用它。 然后,我將在Java代碼中使用此ID插入數據庫。

這是下面我的Java代碼的一部分:

String currentTypeTarifIdStr = request.getParameter("current_typetarif_id");
        Integer currentTypeTarifId = Integer.valueOf(currentTypeTarifIdStr);

        String TypeTarifIdToRemoveStr = request.getParameter("typetarif_id_to_remove");
        Integer TypeTarifIdToRemove = Integer.valueOf(TypeTarifIdToRemoveStr);

        Integer trimmedOptionSplit = 0;
        String optionChkStr = request.getParameter("chk_option");
        String[] optionSplitStrs = optionChkStr.split(",");


        String TypeTarifOptionToRemoveStr = request.getParameter("typetarif_option_to_remove");
        Integer TypeTarifOptionToRemove = Integer.valueOf(TypeTarifOptionToRemoveStr);





                        query = mEntityManager.createQuery("DELETE FROM TarifTypeOptionEntity WHERE typeTarifId=:pId");
                        int deletedCount = query.setParameter("pId", currentTypeTarifId).executeUpdate();
                        mUserTransaction.commit();


                        for (String optionSplitStr : optionSplitStrs) {
                            String trimmedOptionSplitStr = optionSplitStr.trim();
                            // do something with trimmedOptionSplitStr
                            if (!trimmedOptionSplitStr.equals("")) {
                                trimmedOptionSplit = Integer.valueOf(trimmedOptionSplitStr);
                            }

                            mUserTransaction.begin();
                            TarifTypeOptionEntity typeTarifTypeOption = new TarifTypeOptionEntity();
                            typeTarifTypeOption.setTypeTarifId(currentTypeTarifId);
                            typeTarifTypeOption.setTarifOptionId(trimmedOptionSplit);
                            mEntityManager.persist(typeTarifTypeOption);
                        mUserTransaction.commit();
                        }

                    mUserTransaction.begin();
                    }

我將首先刪除數據庫中的所有內容,然后僅在數據庫中插入選中的復選框。 為此,我應該用逗號將所有檢查的值連接起來。 然后在我的Java代碼中,我將其拆分並刪除逗號。

但這沒有發生。 有人可以幫我編碼,找出我在做什么錯。

編輯:

控制台中沒有錯誤,並且警報確實起作用。 實際上,此代碼可以完美地工作。 在單擊復選框時,將執行if子句,每次我選中另一個復選框時,該值都會在逗號后面添加。 這是我在Java中需要的那些值。 但這並不是我從這段代碼中所需要的。

現在,它只將我未選中的值添加到數據庫中。 但是當然不可能發生,因為該值已經存在。 所以我得到的錯誤造成的: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails ( locforall_booking . t_be_tarif_type_option , CONSTRAINT fk_t_be_type_tarif_option_t_be_tarif_option1 FOREIGN KEY ( be_tarif_option_id ) REFERENCES t_be_tarif_option ( ID ) ON DELETE CASCA)

我的問題的場景:如果當我檢查了2個值並且我沒有取消選中它而是檢查了第三個值時,它將刪除數據庫中的所有內容並僅保留該第三個值。 但是我真正需要的是刪除數據庫中的所有內容並保留所有值,包括第三個值。

有誰可以幫助您的Java語言專家?

您可以使用2D數組執行以下操作:

<html>

    var items = [["abc.jpg", "xyz.jpg"],["123.jpg","345.jpg"]];
    alert(items[1][1]); // 345.jpg
</script>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM