我正在建立一个评分系统,以使用5颗星对电影进行评分。我jQuery bar plugin
为此使用了(jQuery bar plugin)。
有人可以从1到5投票。数据存储在数据库中。在某人投票后,星标将被禁用,并显示用户评分的星标数量。
利用initialRating
插件的值,它将定义“选定”多少颗星星。因此,如果此变量为4,则将为4个星星上色。
例如initialRating: 4
,当我进行硬编码时,它可以工作。尽管当我使用initialRating: currentRating
(投票的星星数量)时,它不会返回正确的数量,而只会显示1颗星星。当我console.log
currentRating
回来的时候4
。
因此,硬编码4
是如何工作的,而不是currentRating
无效的(值为4)。
代码
$(function () {
currentRating = $(".rating").val(); //Getting the value that someone vote previously
console.log(currentRating); // Displays 4
$('#rating').barrating('show', {
theme: 'fontawesome-stars',
showSelectedRating: true,
initialRating: currentRating,
onSelect: function (value, text) {
movieTitle = $('.movie-name'). text(),
tmdb_id = $(".imdb_id").val(),
_token = $(".csrf_field").val();
$.ajax({
headers: {
'X-CSRF-TOKEN': _token
},
method: "POST",
url: "/movies/" + tmdb_id + "/rate",
data: {
title: movieTitle,
tmdb_id: tmdb_id,
rating: value
},
success: function (result) {
$("#div1").html(result);
}
});
}
});
});
变量currentRating
为a,string
而插件期望为integer
。
将转换string
为integer
使用parseInt()
将解决问题。
代码
currentRating = parseInt(currentRating);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句