You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Objective:

To ensure that Form Grid data do not have duplicates

เพื่อให้แน่ใจว่าข้อมูลกริดฟอร์มไม่มีข้อมูลซ้ำซ้อน

Code:

Change "gridId" to your form grid "Field Id".

To compare certain columns only instead of all columns, modify '$(row).find(".grid-cell")' to '$(row).find("[KB:column_key=field1], [KB:column_key=field2]")'.  (Take note that this is separated by a comma.)

เปลี่ยน "gridId" เป็นตารางแบบฟอร์ม "Field Id" ของคุณ

หากต้องการเปรียบเทียบคอลัมน์บางคอลัมน์แทนที่จะเป็นคอลัมน์ทั้งหมดให้แก้ไข '$ (แถว) .find (". grid-cell")' เป็น '$ (แถว) .find ("[KB: column_key = field1], [KB: column_key = field2] ")' (โปรดทราบว่าสิ่งนี้คั่นด้วยเครื่องหมายจุลภาค)

<script>
    $(document).ready(function(){
        var formGridFieldId = "gridId";

        //run when form grid value change
        $("[name="+formGridFieldId+"]").live("change", function(){
            var table = $(this).find("table");

            //get last added row
            var addedRow = $(table).find("tr.grid-row:last-child");

            var duplicate = false;

            //Loop all the row and compare all the field
            $(table).find("tr.grid-row").each(function(){
                var row = $(this);

                if ($(row).attr("id") != $(addedRow).attr("id")) {
                    var similar = true;

                    //Loop all field
                    //Change '$(row).find(".grid-cell")' to '$(row).find("[column_key=field1], [column_key=field2]")'
                    //if only want to compare to certain fields. Separate with comma.

                    $(row).find(".grid-cell").each(function(){
                        var field = $(this);

                        var columnKey = $(field).attr("column_key");
                        var value = $(field).text();

                        var newValue = $(addedRow).find("[column_key="+columnKey+"]").text();

                        if (value != newValue) {
                            similar = false;
                            return false;
                        }
                    });

                    if (similar) {
                        duplicate = true;
                        return false;
                    }
                }
            });

            //if record is duplicate, remove it
            if (duplicate) {
                $(addedRow).remove();
            }
        });
    });
</script>
  • No labels