$(document).ready( function() { $(".explainfield-select select").change(function() { process_my_textfield(this); }); $(".explainfield-select select").change(); $(".explainfield-buttons input:radio").click(function() { process_my_textfield(this); }); $(".explainfield-buttons input:checkbox").click(function() { process_my_textfield(this); }); $(".explainfield-buttons input").load(function() { load_my_textfield(this); }); $(".explainfield-buttons input:radio").load(); $(".explainfield-buttons input:checkbox").load(); } ); function load_my_textfield(me) { var my_class = $(me).attr('class'); var my_type = $(me).attr('type'); var field_name = me.name.substring(0, me.name.indexOf('[')) var my_element = $(me).parent(); while ($(my_element).attr('class') != 'explainfield-buttons' && $(my_element).attr('class') != 'explainfield-select') { my_element = $(my_element).parent(); } my_element = $(my_element).children('span.keys-' + field_name); var trigger_value = $(my_element).children('input.trigger').val(); var pointer_value = $(my_element).children('input.pointer').val(); my_text = '.explainfield-text-' + field_name + '-' + pointer_value; $(my_text).hide(); if (my_type == 'checkbox') { if ($(me).attr('checked')) { $(my_text).show(); } } if ($('input:radio[name="' + me.name + '"]:checked').val() == trigger_value) { $(my_text).show(); } } function process_my_textfield(me) { var my_class = $(me).attr('class'); var my_type = $(me).attr('type'); var field_name = me.name.substring(0, me.name.indexOf('[')) var my_element = $(me).parent(); while ($(my_element).attr('class') != 'explainfield-buttons' && $(my_element).attr('class') != 'explainfield-select') { my_element = $(my_element).parent(); } my_element = $(my_element).children('span.keys-' + field_name); var trigger_value = $(my_element).children('input.trigger').val(); var pointer_value = $(my_element).children('input.pointer').val(); my_text = '.explainfield-text-' + field_name + '-' + pointer_value; $(my_text).hide(); var ready = true; if (my_type == 'checkbox') { ready = ($(me).attr('checked')); } if (me.value == trigger_value && ready) { $(my_text).show(); } }