forked from javiertoledo/bootstrap-rating-input
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbootstrap-rating-input.min.js
4 lines (4 loc) · 1.92 KB
/
bootstrap-rating-input.min.js
1
2
3
4
(function($){$.fn.rating=function(){var element;function _paintValue(ratingInput,value){var selectedStar=$(ratingInput).find("i[data-value="+value+"]");selectedStar.removeClass("fa-star-o").addClass("fa-star");selectedStar.prevAll("i").removeClass("fa-star-o").addClass("fa-star");selectedStar.nextAll("i").removeClass("fa-star").addClass("fa-star-o")}function _clearValue(ratingInput){var self=$(ratingInput);self.find("i").removeClass("fa-star").addClass("fa-star-o");
self.find(".rating-clear").hide();self.find("input").val("").trigger("change")}for(element=this.length-1;element>=0;element--){var el,i,ratingInputs,originalInput=$(this[element]),max=originalInput.data("max")||5,min=originalInput.data("min")||0,clearable=originalInput.data("clearable")||null,stars="";for(i=min;i<=max;i++)stars+=['<i class="fa fa-star-o" data-value="',i,'"></i>'].join("");if(clearable)stars+=[' <a class="rating-clear" style="display:none;" href="javascript:void"><i class="fa fa-times"></i> ',
clearable,"</a>"].join("");el=['<div class="rating-input">',stars,'<input type="hidden" name="',originalInput.attr("name"),'" value="',originalInput.val(),'" id="',originalInput.attr("id"),'" />',"</div>"].join("");originalInput.replaceWith(el)}$(".rating-input").on("mouseenter","i",function(){var self=$(this);_paintValue(self.parent(),self.data("value"))}).on("mouseleave","i",function(){var self=$(this);var val=self.siblings("input").val();if(val)_paintValue(self.parent(),val);else _clearValue(self.parent())}).on("click",
"i",function(){var self=$(this);var val=self.data("value");self.siblings("input").val(val).trigger("change");self.siblings(".rating-clear").show()}).on("click",".rating-clear",function(){_clearValue($(this).parent())}).each(function(){var val=$(this).find("input").val();if(val){_paintValue(this,val);$(this).find(".rating-clear").show()}})};$(function(){if($("input.rating[type=number]").length>0)$("input.rating[type=number]").rating()})})(jQuery);