Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I played around for a bit and decided to create a jquery plugin out of it which seems to handle my quesiton:</p> <p><a href="http://jsfiddle.net/8pyF2/9/" rel="nofollow">http://jsfiddle.net/8pyF2/9/</a></p> <p>I did add the ability for it to also work with selects and also added a clear button. Let me know if this should be refactorred.</p> <p><strong>html:</strong></p> <pre><code>&lt;div class="grouped_choice"&gt; &lt;h1&gt;Some Input Group&lt;/h1&gt; &lt;p&gt; &lt;input type="text" rel="group_1" /&gt; &lt;input type="text" rel="group_1" /&gt; &lt;a href="#" class="clear_group" rel="group_1"&gt;clear&lt;/a&gt; &lt;/p&gt;OR &lt;p&gt; &lt;input type="text" rel="group_2" /&gt; &lt;input type="text" rel="group_2" /&gt; &lt;a href="#" class="clear_group" rel="group_2"&gt;clear&lt;/a&gt; &lt;/p&gt;OR &lt;p&gt; &lt;input type="text" rel="group_3" /&gt; &lt;input type="text" rel="group_3" /&gt; &lt;a href="#" class="clear_group" rel="group_3"&gt;clear&lt;/a&gt; &lt;/p&gt; &lt;/div&gt; &lt;div class="grouped_choice"&gt; &lt;h1&gt;Some Other Input Group&lt;/h1&gt; &lt;p&gt; &lt;input type="text" rel="group_1" /&gt; &lt;input type="text" rel="group_1" /&gt; &lt;a href="#" class="clear_group" rel="group_1"&gt;clear&lt;/a&gt; &lt;/p&gt;OR &lt;p&gt; &lt;input type="text" rel="group_2" /&gt; &lt;input type="text" rel="group_2" /&gt; &lt;a href="#" class="clear_group" rel="group_2"&gt;clear&lt;/a&gt; &lt;/p&gt;OR &lt;p&gt; &lt;input type="text" rel="group_3" /&gt; &lt;input type="text" rel="group_3" /&gt; &lt;a href="#" class="clear_group" rel="group_3"&gt;clear&lt;/a&gt; &lt;/p&gt; &lt;/div&gt; </code></pre> <p><strong>Javascript:</strong></p> <pre><code>(function ($) { $.fn.groupedChoice = function () { this.each(function () { var parent = $(this); // handle change parent.on('change', 'input,select', function () { var field, group; field = $(this); group = field.attr('rel'); if (field.val().length !== 0) { parent.find('input[rel!="' + group + '"],select[rel!="' + group + '"]').prop('disabled', true).addClass('disabled'); } else { var empty = true parent.find('input[rel='+group+'],input[rel='+group+']').each( function() { if($(this).val().length !== 0) empty = false }); if(empty) parent.find('input,select').prop('disabled', false).removeClass('disabled'); } }); // handle group clear parent.find('.clear_group').click( function(e) { e.preventDefault(); group = $(this).attr('rel'); disabled = false; parent.find('input[rel='+group+'],select[rel='+group+']').each( function() { if( $(this).prop('disabled') ) disabled = true }) if(!disabled) { parent.find('input[rel='+group+'],select[rel='+group+']').val(''); parent.find('input,select').prop('disabled', false).removeClass('disabled'); } }); }); }; })(jQuery); $('.grouped_choice').groupedChoice(); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload