jQuery星级评级插件变量没有正确返回

时间:2016-04-19 11:18:35

标签: javascript jquery jquery-bar-rating

我制作了一个评分系统,用5星评价电影。我使用jQuery bar pluginjQuery 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);
                }
            });
        } 
    });
});

enter image description here

1 个答案:

答案 0 :(得分:1)

变量currentRatingstring,而插件期待integer

使用stringinteger转换为parseInt()将解决问题。

<强>代码

currentRating = parseInt(currentRating);