"Review / Feedback"
Bootstrap 3.2.0 Snippet by SureshVakati

<link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="container"> <div class="row"> <h2>Feedback</h2> <table width="100%" border="0"> <div class="col-md-9 col-md-offset-0"> <tr><td width="77%"> <div class=""> <form class="form-horizontal" action="send.php" method="post"> <fieldset> <!-- Name input--> <div class="form-group"> <label class="col-md-3 control-label" for="name">Full Name</label> <div class="col-md-9"> <input id="name" name="name" type="text" placeholder="Your name" class="form-control"> </div> </div> <!-- Email input--> <div class="form-group"> <label class="col-md-3 control-label" for="email">Your E-mail</label> <div class="col-md-9"> <input id="email" name="email" type="text" placeholder="Your email" class="form-control"> </div> </div> <!-- Message body --> <div class="form-group"> <label class="col-md-3 control-label" for="message">Your message</label> <div class="col-md-9"> <textarea class="form-control" id="message" name="message" placeholder="Please enter your feedback here..." rows="5"></textarea> </div> </div> <!-- Rating --> <div class="form-group"> <label class="col-md-3 control-label" for="message">Your rating</label> <div class="col-md-9"> <input id="input-21e" value="0" type="number" class="rating" min=0 max=5 step=0.5 data-size="xs" > </div> </div> </td> <td align="center" valign="top" width="23%"> <!-- Form actions --> <div class="form-group"> <div class="col-md-12 text-center"> <img src="http://www.gohacking.com/wp-content/uploads/2010/06/captcha-300x171.jpg" height="140px" width="270px"/><br/> <button type="submit" class="btn btn-primary btn-md">Submit</button> <button type="reset" class="btn btn-default btn-md">Clear</button> </div> </div> </fieldset> </form> </div> </div> </td> </tr> </table> </div> <div class="container"> <div class="row"> <h2> Featured Testimonials</h2> <div class="col-md-6"> <div class="blockquote-box clearfix"> <div class="square pull-left"> <img src="http://placehold.it/60/8e44ad/FFF&text=B" alt="" class="" /> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. </p> </div> <div class="blockquote-box blockquote-primary clearfix"> <div class="square pull-left"> <span class="glyphicon glyphicon-music glyphicon-lg"></span> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. <a href="http://www.jquery2dotnet.com/search/label/jquery">jquery2dotnet</a> </p> </div> <div class="blockquote-box blockquote-success clearfix"> <div class="square pull-left"> <span class="glyphicon glyphicon-tree-conifer glyphicon-lg"></span> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. </p> </div> </div> <div class="col-md-6"> <div class="blockquote-box blockquote-info clearfix"> <div class="square pull-left"> <span class="glyphicon glyphicon-info-sign glyphicon-lg"></span> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. </p> </div> <div class="blockquote-box blockquote-warning clearfix"> <div class="square pull-left"> <span class="glyphicon glyphicon-warning-sign glyphicon-lg"></span> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. </p> </div> <div class="blockquote-box blockquote-danger clearfix"> <div class="square pull-left"> <span class="glyphicon glyphicon-record glyphicon-lg"></span> </div> <h4> John Doe</h4> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante. </p> </div> </div> </div> </div>
body {padding-top:20px;} .glyphicon-lg{font-size:3em} .blockquote-box{border-right:5px solid #E6E6E6;margin-bottom:25px} .blockquote-box .square{width:100px;min-height:50px;margin-right:22px;text-align:center!important;background-color:#E6E6E6;padding:20px 0} .blockquote-box.blockquote-primary{border-color:#357EBD} .blockquote-box.blockquote-primary .square{background-color:#428BCA;color:#FFF} .blockquote-box.blockquote-success{border-color:#4CAE4C} .blockquote-box.blockquote-success .square{background-color:#5CB85C;color:#FFF} .blockquote-box.blockquote-info{border-color:#46B8DA} .blockquote-box.blockquote-info .square{background-color:#5BC0DE;color:#FFF} .blockquote-box.blockquote-warning{border-color:#EEA236} .blockquote-box.blockquote-warning .square{background-color:#F0AD4E;color:#FFF} .blockquote-box.blockquote-danger{border-color:#D43F3A} .blockquote-box.blockquote-danger .square{background-color:#D9534F;color:#FFF} /*! * @copyright © Kartik Visweswaran, Krajee.com, 2014 * @version 2.5.0 * * A simple yet powerful JQuery star rating plugin that allows rendering * fractional star ratings and supports Right to Left (RTL) input. * * For more JQuery/Bootstrap plugins and demos visit http://plugins.krajee.com * For more Yii related demos visit http://demos.krajee.com */ .rating-loading { width: 25px; height: 25px; font-size: 0px; color: #fff; background: transparent url('../img/loading.gif') top left no-repeat; border: none; } /* * Stars */ .rating-gly { font-family: 'Glyphicons Halflings'; } .rating-gly-star { font-family: 'Glyphicons Halflings'; padding-left: 2px; } .rating-gly-star .rating-stars:before { padding-left: 2px; } .rating-lg .rating-gly-star, .rating-lg .rating-gly-star .rating-stars:before { padding-left: 4px; } .rating-xl .rating-gly-star, .rating-xl .rating-gly-star .rating-stars:before { padding-left: 2px; } .rating-active { cursor: default; } .rating-disabled { cursor: not-allowed; } .rating-uni { font-size: 1.2em; margin-top: -5px; } .rating-container { position: relative; vertical-align: middle; display: inline-block; color: #e3e3e3; overflow: hidden; } .rating-container:before { content: attr(data-content); } .rating-container .rating-stars { position: absolute; left: 0; top: 0; white-space: nowrap; overflow: hidden; color: #fde16d; transition: all 0.25s ease-out; -o-transition: all 0.25s ease-out; -moz-transition: all 0.25s ease-out; -webkit-transition: all 0.25s ease-out; } .rating-container .rating-stars:before { content: attr(data-content); text-shadow: 0 0 1px rgba(0, 0, 0, 0.7); } .rating-container-rtl { position: relative; vertical-align: middle; display: inline-block; overflow: hidden; color: #fde16d; } .rating-container-rtl:before { content: attr(data-content); text-shadow: 0 0 1px rgba(0, 0, 0, 0.7); } .rating-container-rtl .rating-stars { position: absolute; left: 0; top: 0; white-space: nowrap; overflow: hidden; color: #e3e3e3; transition: all 0.25s ease-out; -o-transition: all 0.25s ease-out; -moz-transition: all 0.25s ease-out; -webkit-transition: all 0.25s ease-out; } .rating-container-rtl .rating-stars:before { content: attr(data-content); } /** * Rating sizes */ .rating-xl { font-size: 4.89em; } .rating-lg { font-size: 3.91em; } .rating-md { font-size: 3.13em; } .rating-sm { font-size: 2.5em; } .rating-xs { font-size: 2em; } /** * Clear rating button */ .star-rating .clear-rating, .star-rating-rtl .clear-rating { color: #aaa; cursor: not-allowed; display: inline-block; vertical-align: middle; font-size: 60%; } .clear-rating-active { cursor: pointer !important; } .clear-rating-active:hover { color: #843534; } .star-rating .clear-rating { padding-right: 5px; } /** * Caption */ .star-rating .caption, .star-rating-rtl .caption { color: #999; display: inline-block; vertical-align: middle; font-size: 55%; } .star-rating .caption { padding-left: 5px; } .star-rating-rtl .caption { padding-right: 5px; }
/*! * @copyright © Kartik Visweswaran, Krajee.com, 2014 * @version 2.5.0 * * A simple yet powerful JQuery star rating plugin that allows rendering * fractional star ratings and supports Right to Left (RTL) input. * * For more JQuery plugins visit http://plugins.krajee.com * For more Yii related demos visit http://demos.krajee.com */ (function ($) { var DEFAULT_MIN = 0; var DEFAULT_MAX = 5; var DEFAULT_STEP = 0.5; var isEmpty = function (value, trim) { return typeof value === 'undefined' || value === null || value === undefined || value == [] || value === '' || trim && $.trim(value) === ''; }; var validateAttr = function ($input, vattr, options) { var chk = isEmpty($input.data(vattr)) ? $input.attr(vattr) : $input.data(vattr); if (chk) { return chk; } return options[vattr]; }; var getDecimalPlaces = function (num) { var match = ('' + num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); if (!match) { return 0; } return Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0)); }; var applyPrecision = function (val, precision) { return parseFloat(val.toFixed(precision)); }; // Rating public class definition var Rating = function (element, options) { this.$element = $(element); this.init(options); }; Rating.prototype = { constructor: Rating, _parseAttr: function (vattr, options) { var self = this, $input = self.$element; if ($input.attr('type') === 'range' || $input.attr('type') === 'number') { var val = validateAttr($input, vattr, options); var chk = DEFAULT_STEP; if (vattr === 'min') { chk = DEFAULT_MIN; } else if (vattr === 'max') { chk = DEFAULT_MAX; } else if (vattr === 'step') { chk = DEFAULT_STEP; } var final = isEmpty(val) ? chk : val; return parseFloat(final); } return parseFloat(options[vattr]); }, /** * Listens to events */ listen: function () { var self = this; self.$rating.on("click", function (e) { if (!self.inactive) { w = e.pageX - self.$rating.offset().left; self.setStars(w); self.$element.trigger('change'); self.$element.trigger('rating.change', [self.$element.val(), self.$caption.html()]); } }); self.$clear.on("click", function (e) { if (!self.inactive) { self.clear(); } }); $(self.$element[0].form).on("reset", function (e) { if (!self.inactive) { self.reset(); } }); }, initSlider: function (options) { var self = this; if (isEmpty(self.$element.val())) { self.$element.val(0); } self.initialValue = self.$element.val(); self.min = (typeof options.min !== 'undefined') ? options.min : self._parseAttr('min', options); self.max = (typeof options.max !== 'undefined') ? options.max : self._parseAttr('max', options); self.step = (typeof options.step !== 'undefined') ? options.step : self._parseAttr('step', options); if (isNaN(self.min) || isEmpty(self.min)) { self.min = DEFAULT_MIN; } if (isNaN(self.max) || isEmpty(self.max)) { self.max = DEFAULT_MAX; } if (isNaN(self.step) || isEmpty(self.step) || self.step == 0) { self.step = DEFAULT_STEP; } self.diff = self.max - self.min; }, /** * Initializes the plugin */ init: function (options) { var self = this; self.options = options; self.initSlider(options); self.checkDisabled(); $element = self.$element; self.containerClass = options.containerClass; self.glyphicon = options.glyphicon; var defaultStar = (self.glyphicon) ? '\ue006' : '\u2605'; self.symbol = isEmpty(options.symbol) ? defaultStar : options.symbol; self.rtl = options.rtl || self.$element.attr('dir'); if (self.rtl) { self.$element.attr('dir', 'rtl'); } self.showClear = options.showClear; self.showCaption = options.showCaption; self.size = options.size; self.stars = options.stars; self.defaultCaption = options.defaultCaption; self.starCaptions = options.starCaptions; self.starCaptionClasses = options.starCaptionClasses; self.clearButton = options.clearButton; self.clearButtonTitle = options.clearButtonTitle; self.clearButtonBaseClass = !isEmpty(options.clearButtonBaseClass) ? options.clearButtonBaseClass : 'clear-rating'; self.clearButtonActiveClass = !isEmpty(options.clearButtonActiveClass) ? options.clearButtonActiveClass : 'clear-rating-active'; self.clearCaption = options.clearCaption; self.clearCaptionClass = options.clearCaptionClass; self.clearValue = options.clearValue; self.$element.removeClass('form-control').addClass('form-control'); self.$clearElement = isEmpty(options.clearElement) ? null : $(options.clearElement); self.$captionElement = isEmpty(options.captionElement) ? null : $(options.captionElement); if (typeof self.$rating == 'undefined' && typeof self.$container == 'undefined') { self.$rating = $(document.createElement("div")).html('<div class="rating-stars"></div>'); self.$container = $(document.createElement("div")); self.$container.before(self.$rating); self.$container.append(self.$rating); self.$element.before(self.$container).appendTo(self.$rating); } self.$stars = self.$rating.find('.rating-stars'); self.generateRating(); self.$clear = !isEmpty(self.$clearElement) ? self.$clearElement : self.$container.find('.' + self.clearButtonBaseClass); self.$caption = !isEmpty(self.$captionElement) ? self.$captionElement : self.$container.find(".caption"); self.setStars(); self.$element.hide(); self.listen(); if (self.showClear) { self.$clear.attr({"class": self.getClearClass()}); } self.$element.removeClass('rating-loading'); }, checkDisabled: function () { var self = this; self.disabled = validateAttr(self.$element, 'disabled', self.options); self.readonly = validateAttr(self.$element, 'readonly', self.options); self.inactive = (self.disabled || self.readonly); }, getClearClass: function () { return this.clearButtonBaseClass + ' ' + ((this.inactive) ? '' : this.clearButtonActiveClass); }, generateRating: function () { var self = this, clear = self.renderClear(), caption = self.renderCaption(), css = (self.rtl) ? 'rating-container-rtl' : 'rating-container', stars = self.getStars(); css += (self.glyphicon) ? ((self.symbol == '\ue006') ? ' rating-gly-star' : ' rating-gly') : ' rating-uni'; self.$rating.attr('class', css); self.$rating.attr('data-content', stars); self.$stars.attr('data-content', stars); var css = self.rtl ? 'star-rating-rtl' : 'star-rating'; self.$container.attr('class', css + ' rating-' + self.size); if (self.inactive) { self.$container.removeClass('rating-active').addClass('rating-disabled'); } else { self.$container.removeClass('rating-disabled').addClass('rating-active'); } if (typeof self.$caption == 'undefined' && typeof self.$clear == 'undefined') { if (self.rtl) { self.$container.prepend(caption).append(clear); } else { self.$container.prepend(clear).append(caption); } } if (!isEmpty(self.containerClass)) { self.$container.removeClass(self.containerClass).addClass(self.containerClass); } }, getStars: function () { var self = this, numStars = self.stars, stars = ''; for (var i = 1; i <= numStars; i++) { stars += self.symbol; } return stars; }, renderClear: function () { var self = this; if (!self.showClear) { return ''; } var css = self.getClearClass(); if (!isEmpty(self.$clearElement)) { self.$clearElement.removeClass(css).addClass(css).attr({"title": self.clearButtonTitle}); self.$clearElement.html(self.clearButton); return ''; } return '<div class="' + css + '" title="' + self.clearButtonTitle + '">' + self.clearButton + '</div>'; }, renderCaption: function () { var self = this, val = self.$element.val(); if (!self.showCaption) { return ''; } var html = self.fetchCaption(val); if (!isEmpty(self.$captionElement)) { self.$captionElement.removeClass('caption').addClass('caption').attr({"title": self.clearCaption}); self.$captionElement.html(html); return ''; } return '<div class="caption">' + html + '</div>'; }, fetchCaption: function (rating) { var self = this; var val = parseFloat(rating), css, cap; if (typeof(self.starCaptionClasses) == "function") { css = isEmpty(self.starCaptionClasses(val)) ? self.clearCaptionClass : self.starCaptionClasses(val); } else { css = isEmpty(self.starCaptionClasses[val]) ? self.clearCaptionClass : self.starCaptionClasses[val]; } if (typeof(self.starCaptions) == "function") { var cap = isEmpty(self.starCaptions(val)) ? self.defaultCaption.replace(/\{rating\}/g, val) : self.starCaptions(val); } else { var cap = isEmpty(self.starCaptions[val]) ? self.defaultCaption.replace(/\{rating\}/g, val) : self.starCaptions[val]; } var caption = (val == self.clearValue) ? self.clearCaption : cap; return '<span class="' + css + '">' + caption + '</span>'; }, getValueFromPosition: function (pos) { var self = this, precision = getDecimalPlaces(self.step), percentage, val, maxWidth = self.$rating.width(); percentage = (pos / maxWidth); if (self.rtl) { val = (self.min + Math.floor(self.diff * percentage / self.step) * self.step); } else { val = (self.min + Math.ceil(self.diff * percentage / self.step) * self.step); } if (val < self.min) { val = self.min; } else if (val > self.max) { val = self.max; } val = applyPrecision(parseFloat(val), precision); if (self.rtl) { val = self.max - val; } return val; }, setStars: function (pos) { var self = this, min = self.min, max = self.max, step = self.step, val = arguments.length ? self.getValueFromPosition(pos) : (isEmpty(self.$element.val()) ? 0 : self.$element.val()), width = 0, maxWidth = self.$rating.width(), caption = self.fetchCaption(val); width = (val - min) / max * 100; if (self.rtl) { width = 100 - width; } self.$element.val(val); width += '%'; self.$stars.css('width', width); self.$caption.html(caption); }, clear: function () { var self = this; var title = '<span class="' + self.clearCaptionClass + '">' + self.clearCaption + '</span>'; self.$stars.removeClass('rated'); if (!self.inactive) { self.$caption.html(title); } self.$element.val(self.clearValue); self.setStars(); self.$element.trigger('rating.clear'); }, reset: function () { var self = this; self.$element.val(self.initialValue); self.setStars(); self.$element.trigger('rating.reset'); }, update: function (val) { if (arguments.length > 0) { var self = this; self.$element.val(val); self.setStars(); } }, refresh: function (options) { var self = this; if (arguments.length) { var cap = ''; self.init($.extend(self.options, options)); if (self.showClear) { self.$clear.show(); } else { self.$clear.hide(); } if (self.showCaption) { self.$caption.show(); } else { self.$caption.hide(); } } } }; //Star rating plugin definition $.fn.rating = function (option) { var args = Array.apply(null, arguments); args.shift(); return this.each(function () { var $this = $(this), data = $this.data('rating'), options = typeof option === 'object' && option; if (!data) { $this.data('rating', (data = new Rating(this, $.extend({}, $.fn.rating.defaults, options, $(this).data())))); } if (typeof option === 'string') { data[option].apply(data, args); } }); }; $.fn.rating.defaults = { stars: 5, glyphicon: true, symbol: null, disabled: false, readonly: false, rtl: false, size: 'md', showClear: true, showCaption: true, defaultCaption: '{rating} Stars', starCaptions: { 0.5: 'Half Star', 1: 'One Star', 1.5: 'One & Half Star', 2: 'Two Stars', 2.5: 'Two & Half Stars', 3: 'Three Stars', 3.5: 'Three & Half Stars', 4: 'Four Stars', 4.5: 'Four & Half Stars', 5: 'Five Stars' }, starCaptionClasses: { 0.5: 'label label-danger', 1: 'label label-danger', 1.5: 'label label-warning', 2: 'label label-warning', 2.5: 'label label-info', 3: 'label label-info', 3.5: 'label label-primary', 4: 'label label-primary', 4.5: 'label label-success', 5: 'label label-success' }, clearButton: '<i class="glyphicon glyphicon-minus-sign"></i>', clearButtonTitle: 'Clear', clearButtonBaseClass: 'clear-rating', clearButtonActiveClass: 'clear-rating-active', clearCaption: 'Not Rated', clearCaptionClass: 'label label-default', clearValue: 0, captionElement: null, clearElement: null, containerClass: null }; /** * Convert automatically number inputs with class 'rating' * into the star rating control. */ $('input.rating').addClass('rating-loading'); $(document).ready(function () { var $input = $('input.rating'), count = Object.keys($input).length; if (count > 0) { $input.rating(); } }); }(jQuery));

Related: See More


Questions / Comments: