2

我正在使用来自该站点的评级星级 jQuery 插件:http ://www.wbotelhos.com/raty/由 Washington Botelho 提供。
我在我的单一表单中使用多个评级。不同的评分是这样的:

<div id='star1' class='star'></div>
<input name='score1' type='hidden' id='score-target' />

<div id='star2' class='star'></div>
<input name='score2' type='hidden' id='score-target' />

<div id='star3' class='star'></div>
<input name='score3' type='hidden' id='score-target' />

现在我对 jQuery 不太熟悉,但我尝试了很多来了解它的 js 文件。我写了这样的javascript代码:

<script type="text/javascript">
        $(function() {

            $('.star').raty({
            cancel      : true,
            targetKeep  : true,
            targetType  : 'number',
            targetText  : '0',
            target      : '#score-target'
            });

            $('#score').raty({
                score: function() {
                    return $(this).attr('data-rating');
                }
            });
    });
</script>  

问题是只有最后一次评分的分数存储在我的输入中,前 2 个输入存储空值。我不使用 Ajax,因为我不熟悉它。我正在使用 php 从表单中获取数据,然后将其存储在表中。任何人都可以帮助我使用 javascript 代码将不同的值存储在不同的隐藏输入字段中吗?

4

2 回答 2

0

检查您的代码并观察“on-stars”的 src 属性对我来说,on-stars 的 src 属性包含 star-on 。

        score: function() {
            return $('img[src*="star-on"]',$(this)).length;
        }
于 2013-04-14T23:08:44.237 回答
-1

问题在这里:

target      : '#score-target'

您正在使用选择器#,这意味着一个名为“score-target”的ID 。在 html 中,ID是唯一的,这就是为什么每次第一次引用该 ID 时它都会返回。

你应该这样写:

<div id='star1' class='star' rel="score-target1"></div>
<input name='score1' type='hidden' id='score-target1' />
...


...
target      : $(this).attr('rel')
...
于 2012-07-06T12:51:06.263 回答