I have a repeating section for skills in my character sheet and need to calculate the final value to be rolled for the skill by adding it's rating and an attribute. Following code is intended to trigger a sheet worker which will update a hidden attribute with the value of the attribute to be used in a roll query. defining the repeating section: <span> <fieldset class="repeating_skill"> <input type="text" name="attr_skillname" value="Name">: <input type="number" name="attr_skillrating" value="0"> <br> <span class = "upd"> Attribute: &nbsp <select name = "attr_skill_atr_dropdown"> <option value = "agi">Agility</option> <option value = "body">Body</option> <option value = "cha">Charisma</option> <option value = "int">Intuition</option> <option value = "log">Logic</option> <option value = "mag">Magic</option> <option value = "rea">Reaction</option> <option value = "str">Strength</option> <option value = "wil">Willpower</option> </select> &nbsp <input type="hidden" name="attr_skill_atr" value="0"> <button type="roll" value="/roll 1d20 + @{Bluff}" name="roll_skill"></button> </span> <br> </fieldset> </span> Script to set the values (sections are commented out as part of debugging. As written, this is still throwing a "value is not defined" error when the getAttrs() function is called) on("change:repeating_skill:skill_atr_dropdown", function() { let atr_value = 0; getAttrs(["repeating_skill_skill_atr_dropdown"], function(val1) { console.log(values.repeating_skill_skill_atr_dropdown); /* switch(values.repeating_skill_skill_atr_dropdown) { case 'agi': getAttrs(["agil_tot"], function(val1) { atr_value = parseInt(val2.agil_tot); }); break; case 'body': getAttrs(["body_tot"], function(val1) { }); break; case 'cha': getAttrs(["cha_tot"], function(val1) { }); break; case 'int': getAttrs(["int_tot"], function(val1) { }); break; case 'log': getAttrs(["log_tot"], function(val1) { }); break; case 'mag': getAttrs(["magic_tot"], function(val1) { }); break; case 'rea': getAttrs(["reac_tot"], function(val1) { }); break; case 'str': getAttrs(["str_tot"], function(val1) { }); break; case 'wil': getAttrs(["will_tot"], function(val1) { }); break; } */ }); /* setAttrs( { Repeating_skills_skill_atr: atr_value }); */ });