4

我正在制作一个评级系统来使用 5 星对电影进行评级。我jQuery bar plugin为此使用(jQuery bar 插件)。

有人可以从 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);
                }
            });
        } 
    });
});

在此处输入图像描述

4

1 回答 1

1

变量currentRating是 astring而插件期待 a integer

将 thestring转换为integerusingparseInt()将解决问题。

代码

currentRating = parseInt(currentRating);

于 2016-04-19T11:44:29.703 回答