Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
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.)
<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>