BETA!!!! I can give you sample code for the upcoming onChange handler. It's already built in the version you already have. Feel free to test it: Example 1 If the lookup named "patient_id" has changed and if user has selected a lookup item, then show the field named "groups" // if user selected a patient, show groups field new AppGiniField("patient_id").onChange(function (value) { new AppGiniField("groups").showIf(value != null); }); Example 2 // example 2 - (long version of example 1) // if user selected a patient, show groups field new AppGiniField("patient_id").onChange(function (value) { if (value != null) { new AppGiniField("groups").show(); } else { new AppGiniField("groups").hide(); } }); Example 3 // example 3 - on change of field "groups" change visibility of other fields new AppGiniField("groups").onChange(updateFieldsVisibility); function updateFieldsVisibility(value) { // hide/show fields here } Pro-Tipp: You can also use AppGiniFields (plural) instead of AppGiniField (singular) to react to changes on multiple fields, for example new AppGiniFields(["a", "b", "c"]).onChange(function() { /* ... */ } ); // example 4 new AppGiniFields(["patient_id", "groups"]).onChange(function (field, value) { console.log("Field \"" + field + "\" has been changed:"); console.log(value); }); Attention: Lookup fields return id + text of selected item Usually, the variable value is a simple type like string or integer. But if you react on lookup fields, value-variable will be an object with properties "id" and "text" (both lowercase). You can read the values from value.id and value.text // example 5 - lookup field "patient id" new AppGiniFields(["patient_id"]).onChange(function (field, value) { console.log("Field \"" + field + "\" has been changed:"); if (value == null) { console.log("Nothing selected"); } else { console.log("Id=" + value.id); console.log("Text=" + value.text); } });