Fixing the product options
							parent
							
								
									8741f795de
								
							
						
					
					
						commit
						18b8eaf8f5
					
				|  | @ -454,15 +454,37 @@ function updateCart(element){ | |||
| function getSelectedOptions(){ | ||||
|     var options = {}; | ||||
|     $('.product-opt').each(function(){ | ||||
|         if($(this).attr('name') === 'opt-'){ | ||||
|             options[$(this).val().trim()] = $(this).prop('checked'); | ||||
|             return; | ||||
|         } | ||||
|         var optionValue = $(this).val().trim(); | ||||
|         if($(this).attr('type') === 'radio'){ | ||||
|             optionValue = $('input[name="' + $(this).attr('name') + '"]:checked').val(); | ||||
|         var optionLabel = $(this).attr('data-label'); | ||||
|         var optionName = $(this).attr('name'); | ||||
|         var optionType = $(this).attr('type'); | ||||
| 
 | ||||
|         // If select option
 | ||||
|         if(!optionType){ | ||||
|             options[optionName] = { | ||||
|                 label: optionLabel, | ||||
|                 name: optionName, | ||||
|                 value: optionValue | ||||
|             }; | ||||
|         } | ||||
| 
 | ||||
|         // If radio option
 | ||||
|         if(optionType === 'radio'){ | ||||
|             options[optionName] = { | ||||
|                 label: optionLabel, | ||||
|                 name: optionName, | ||||
|                 value: $('input[name="' + optionName + '"]:checked').val() | ||||
|             }; | ||||
|         } | ||||
| 
 | ||||
|         // If checkbox option
 | ||||
|         if(optionType === 'checkbox'){ | ||||
|             options[optionName] = { | ||||
|                 label: optionLabel, | ||||
|                 name: optionName, | ||||
|                 value: $('input[name="' + $(this).attr('name') + '"]').is(':checked') | ||||
|             }; | ||||
|         } | ||||
|         options[$(this).attr('name').substring(4, $(this).attr('name').length)] = optionValue; | ||||
|     }); | ||||
|     return options; | ||||
| } | ||||
|  |  | |||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -17,10 +17,10 @@ | |||
|                         </div> | ||||
|                         <div class="col-sm-12 text-left no-pad-left"> | ||||
|                         {{#each this.options}}  | ||||
|                             {{#if @last}}  | ||||
|                                 {{@key}}: {{this}}  | ||||
|                             {{#if @last}} | ||||
|                                 {{#upperFirst this.name}}{{/upperFirst}}: {{this.value}} | ||||
|                                 {{else}}  | ||||
|                                 {{@key}}: {{this}} /  | ||||
|                                 {{#upperFirst this.name}}{{/upperFirst}}: {{this.value}} / | ||||
|                             {{/if}}  | ||||
|                         {{/each}} | ||||
|                         </div> | ||||
|  |  | |||
|  | @ -33,19 +33,19 @@ | |||
|                     {{#each productOptions}} | ||||
|                         {{#ifCond this.optType '==' "select"}} | ||||
|                             <strong>{{../this.optLabel}}</strong> | ||||
|                             <select name="opt-{{../this.optName}}" class="form-control product-opt"> | ||||
|                             <select name="{{../this.optName}}" data-label="{{../this.optLabel}}" class="form-control product-opt"> | ||||
|                                 {{#each ../this.optOptions}} | ||||
|                                     <option value="{{this}}">{{this}}</option> | ||||
|                                 {{/each}} | ||||
|                             </select> | ||||
|                         {{/ifCond}} | ||||
|                         {{#ifCond this.optType '==' "radio"}} | ||||
|                             <strong>{{../this.optLabel}}</strong> | ||||
|                             {{#each ../this.optOptions}} | ||||
|                                 <strong>{{../this.optLabel}}</strong> | ||||
|                                 <div class="radio"> | ||||
|                                     <label> | ||||
|                                         <input type="radio" class="product-opt" name="opt-{{../../this.optName}}" value="{{this}}"> | ||||
|                                         {{this}} | ||||
|                                         <input type="radio" class="product-opt" data-label="{{../../this.optLabel}}" name="{{../../this.optName}}" value="{{this}}"> | ||||
|                                         <span class="left-pad-10">{{this}}</span> | ||||
|                                     </label> | ||||
|                                 </div> | ||||
|                             {{/each}} | ||||
|  | @ -53,7 +53,8 @@ | |||
|                         {{#ifCond this.optType '==' "checkbox"}} | ||||
|                             <div class="checkbox"> | ||||
|                                 <label> | ||||
|                                     <input type="checkbox" class="product-opt" name="opt-{{../this.optName}}" value="{{../this.optName}}"><strong class="left-pad-10">{{../this.optLabel}}</strong> | ||||
|                                     <input type="checkbox" class="product-opt" data-label="{{../this.optLabel}}" name="{{../this.optName}}" value="{{../this.optName}}"> | ||||
|                                     <span class="left-pad-10">{{../this.optLabel}}</span> | ||||
|                                 </label> | ||||
|                             </div> | ||||
|                         {{/ifCond}} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue