1$(function(){ 2 var timerId = 0; 3 4 $('[data-add-product-review-rating]').each(function(){ 5 var input = $(this).find('input[name=rating]'), 6 lnk = $(this).find('.rating__star'), 7 val = $(input).val(); 8 lnk.each(function(i){ 9 if(i < val) $(this).addClass('rating__star_active'); 10 }); 11 lnk.hover( 12 function(){ 13 var idx = $(this).index(); 14 lnk.each(function(i){ 15 if(i < idx) $(this).addClass('rating__star_mover'); 16 if(i > idx) $(this).addClass('rating__star_mout'); 17 }); 18 $(this).addClass('rating__star_mover'); 19 },function(){ 20 lnk.each(function(){ 21 $(this).removeClass('rating__star_mover rating__star_mout'); 22 }); 23 } 24 ).click(function(){ 25 var value = $(this).data('value'); 26 val = value; 27 $(input).val(val); 28 lnk.each(function(i){ 29 if(i < val) $(this).addClass('rating__star_active'); 30 else $(this).removeClass('rating__star_active'); 31 }); 32 $(this).addClass('rating__star_active'); 33 }); 34 }); 35 36 37 $(document).on('submit', '[data-add-product-review-form]', function(){ 38 let form = $(this); 39 let formData = form.serialize(); 40 let rating = form.find('input[name=rating]').val(); 41 let name = form.find('input[name=name]').val(); 42 let city = form.find('input[name=city]').val(); 43 let text = form.find('textarea[name=text]').val(); 44 let errors = false; 45 46 form.find('.form__input_error').each(function(){ 47 $(this).removeClass('form__input_error'); 48 }); 49 50 form.find('.form__label_error').each(function(){ 51 $(this).removeClass('form__label_error'); 52 }); 53 54 if (rating < 1) { 55 form.find('input[name=rating]').parents('.form__row').find('.form__label_star').addClass('form__label_error'); 56 errors = true; 57 } 58 59 if (name.length < 1) { 60 form.find('input[name=name]').addClass('form__input_error'); 61 errors = true; 62 } 63 64 if (city.length < 1) { 65 form.find('input[name=city]').addClass('form__input_error'); 66 errors = true; 67 } 68 69 if (text.length < 1) { 70 form.find('textarea[name=text]').addClass('form__input_error'); 71 errors = true; 72 } 73 74 if(errors == true) { 75 return false; 76 } 77 78 $.ajax({ 79 url: "/local/ajax/add.review.php", 80 data: formData, 81 type: 'POST', 82 success: function (data) { 83 form.hide(); 84 form.parents('.popup-inner').find('.popup-inner__title').hide(); 85 form.parents('.popup-inner').find('.popup-inner__success').show(); 86 } 87 }); 88 89 return false; 90 }); 91});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.