Hey,
Thank you for your time. The issue I have is based on a jquery function which serves 2 purposes based on 2 sets of checkboxes. The first set is a membership plan the customer chooses (3 checkboxes - 3 month plan/6 month/12 months).
The first conditional you see looks for an attribute ‘data-val’. Problem is, it’s based on an old version of a website that loads checkboxes dynamically and I have no idea where I would assign this ‘data-val’ to the set of checkboxes below so I can properly determine how many months are assigned to their selection. The reason we use this code is because the customer chooses a membership and then the months they prefer to use for their membership. So if you choose 3 month membership, you will then choose 3 months out of 12 (each with a checkbox) and this function determines if you properly selected the correct number of months for your membership.
When I use this code, with the checkboxes we generate in the new version of the site, nothing happens. No errors - just nothing. Because there is no data-val attribute. How do I overcome this so the 2nd conditional knows how many months were selected in the membership checkboxes? The checkboxes for the membership are below.
function checkMonth(){
var Month = null;
jQuery('#2').find('input').each(function(){
if (jQuery(this).attr('checked')){
[B]Month = jQuery(this).attr('data-val[/B]'); // not data-val
}
})
var count = 0;
if (Month!=null && Month !=undefined){
jQuery('#1').find('input').each(function(){
if (jQuery(this).attr('checked')){
count=count+1;
}
})
if (count!=parseInt(Month)){
alert('Please check the correct number of months');
return false;
}
}
return true;
}
Below are the checkboxes. If the first conditoinal is looking for ‘data-val’ attribute, WHERE would I put them? Inside the checkbox code? (I generate these dynamically but I can control the values/names/attributes if I have to).
<div class="input-box-2" id="2">
<ul id="options-2-list" class="options-list">
<li><input type="checkbox" class="checkbox validate-one-required-by-name product-custom-option" onclick="opConfig.reloadPrice()" name="options[2][]" id="options_2_2" value="13" price="479.99" /><span class="label"><label for="options_2_2">12 Months <span class="price-notice">+<span class="price">$479.99</span></span></label></span>
<script type="text/javascript">$('options_2_2').advaiceContainer = 'options-2-container';$('options_2_2').callbackFunction = 'validateOptionsCallback';</script></li>
<li><input type="checkbox" class="checkbox validate-one-required-by-name product-custom-option" onclick="opConfig.reloadPrice()" name="options[2][]" id="options_2_3" value="14" price="239.99" /><span class="label"><label for="options_2_3">6 Months <span class="price-notice">+<span class="price">$239.99</span></span></label></span><script type="text/javascript">$('options_2_3').advaiceContainer = 'options-2-container';$('options_2_3').callbackFunction = 'validateOptionsCallback';</script></li>
<li><input type="checkbox" class="checkbox validate-one-required-by-name product-custom-option" onclick="opConfig.reloadPrice()" name="options[2][]" id="options_2_4" value="15" price="119.99" /><span class="label"><label for="options_2_4">3 Months <span class="price-notice">+<span class="price">$119.99</span></span></label></span><script type="text/javascript">$('options_2_4').advaiceContainer = 'options-2-container';$('options_2_4').callbackFunction = 'validateOptionsCallback';</script></li></ul>
Thank you for your time.