
I am modifying an existing character sheet to add talents that modify a skill if taken. So you have a choice of Slicing +5% or Spirit Lore +5%. I have the code working and it works for no checkbox and one checkbox, and I coded it so when both checkboxes are clicked, it removes the modifications and just keeps it the same as if no checkboxes are selected. What I'd really like is when you have one checkbox selected and you click the other checkbox it unchecks the already checked checkbox. This is the skill being modified, if you add skill points, it updates attr_slicing_skill_mdr . The skill point + any modifier are written out to attr_slicing_mdr <tr data-i18n-list-item="slicing"> <td><input type="checkbox" name="attr_slicing_mdr_checkbox"></td> <td class="skill-label" data-i18n="slicing-u">Slicing(05%)</td> <td><input class="skill-input" type="text" name="attr_slicing_skill_mdr" value="5"/></td> <td><input class="skill-input" type="text" name="attr_slicing_mdr" value="@{slicing_mdr}" readonly/></td> <td><button class='new-roll' type='roll' value='&{template:coc-1} {{name=@{slicing_txt}}} {{success=[[@{slicing_mdr}]]}} {{hard=[[floor(@{slicing_mdr}/2)]]}} {{extreme=[[floor(@{slicing_mdr}/5)]]}} {{roll1=[[1d100]]}}' name='roll_slicing_mdr_check' /></td> </tr> The talent is here, written out to a talent section separate from the skill section <tr data-i18n-list-item="draevi_slicing"> <td><input type="checkbox" name="attr_dravei_slicing_mdr_checkbox" value="1"></td> <td class="talent-label" data-i18n="draevi_slicing-u">Slicing + 5%</td> <td>Gain +5% Slicing Skill</td> <td><input class="skill-input" type="text" name="attr_draevi_slicing_bonus_mdr" value="@{dravei_slicing_bonus_mdr}" readonly/></td> </tr> The sheet worker code to update the value is here on("sheet:opened add:slicing_skill_mdr change:slicing_skill_mdr add:spirit_lore_skill_mdr change:spirit_lore_skill_mdr change:dravei_slicing_mdr_checkbox change:dravei_spirit_lore_mdr_checkbox", function() { getAttrs(["slicing_mdr", "spirit_lore_mdr", "slicing_skill_mdr", "draevi_slicing_bonus_mdr", "spirit_lore_skill_mdr", "draevi_spirit_lore_bonus_mdr", "dravei_slicing_mdr_checkbox", "dravei_spirit_lore_mdr_checkbox"], function(values) { var islicing_mdr = parseInt(values.slicing_mdr) || 0; var ispirit_lore_mdr = parseInt(values.spirit_lore_mdr) || 0; var islicing_skill_mdr = parseInt(values.slicing_skill_mdr) || 5; var idravei_slicing_bonus_mdr = parseInt(values.draevi_slicing_bonus_mdr) || 5; var ispirit_lore_skill_mdr = parseInt(values.spirit_lore_skill_mdr) || 5; var idravei_spirit_lore_bonus_mdr = parseInt(values.draevi_spirit_lore_bonus_mdr) || 5; var idravei_slicing_mdr_checkbox = parseInt(values.dravei_slicing_mdr_checkbox) || 0; var idravei_spirit_lore_mdr_checkbox = parseInt(values.dravei_spirit_lore_mdr_checkbox) || 0; var islicing_mdr_total = islicing_skill_mdr; var ispirit_lore_mdr_total = ispirit_lore_skill_mdr; if ( idravei_slicing_mdr_checkbox > 0 && idravei_spirit_lore_mdr_checkbox == 0) { idravei_spirit_lore_mdr_checkbox = 0; islicing_mdr_total = islicing_skill_mdr + Math.ceil( islicing_skill_mdr * ( ( idravei_slicing_bonus_mdr ) / 100 ) ); } if ( idravei_spirit_lore_mdr_checkbox > 0 && idravei_slicing_mdr_checkbox == 0) { idravei_slicing_mdr_checkbox = 0; ispirit_lore_mdr_total = ispirit_lore_skill_mdr + Math.ceil( ispirit_lore_skill_mdr * ( ( idravei_spirit_lore_bonus_mdr ) / 100 ) ); } setAttrs ({slicing_mdr: islicing_mdr_total}); setAttrs ({spirit_lore_mdr: ispirit_lore_mdr_total}); setAttrs ({dravei_slicing_mdr_checkbox: idravei_slicing_mdr_checkbox}); setAttrs ({dravei_spirit_lore_mdr_checkbox: idravei_spirit_lore_mdr_checkbox}); }); }); I just need shove in the right direction, how do I force the one checkbox to uncheck when the other one is chosen?