You can use JavaScript code like this in your DynaForm to set an event handler for a column in a grid:
Code: Select allvar gridId = "clientList"; //set to the ID of the grid
var fieldId = "lastName"; //set to the ID of the field in grid
//set click event handler when the DynaForm loads for any existing rows in the grid:
var nRows = $("#"+gridId).getNumberRows();
for (var i = 1; i <= nRows; i++) {
$("#\\["+gridId+"\\]\\["+i+"\\]\\["+fieldId+"\\]").click(clickHandler);
}
//set click event handler when a new row is added:
$("#"+gridId).onAddRow(function(aNewRow, oGrid, rowIndex) {
$("#\\["+gridId+"\\]\\["+rowIndex+"\\]\\["+fieldId+"\\]").click(clickHandler);
});
//click event handler function to display an alert if the field is left empty:
function clickHandler() {
var rowNo = $(this).prop("id").match(/\]\[(\d+)\]\[/)[1]
var val = $(this).find("input.form-control").val();
if (val == '') {
alert("Row "+rowNo+" needs to be filled.");
}
}
Change the ID of the grid and the field inside the grid to match your DynaForm. Here is a sample form with the code that you can import:
(2.5 KiB) Downloaded 694 times