用于存储来自多个评级的数据的raty星级评级插件

时间:2012-07-06 12:36:47

标签: php jquery forms

我正在使用本网站上的raty星级评级jQuery插件:华盛顿Botelho的http://www.wbotelhos.com/raty/。 我在单一表单中使用多个评级。不同的评级是这样的:

<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>  

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

2 个答案:

答案 0 :(得分:0)

检查您的代码并观察&#34; on-stars&#34;的src属性。对我来说,on-stars&#34;的src属性包含星形。

        score: function() {
            return $('img[src*="star-on"]',$(this)).length;
        }

答案 1 :(得分:-1)

问题在于:

target      : '#score-target'

您正在使用选择器#,这意味着 ID nammed'得分 - 目标'。 在html中, ID 是唯一的。这就是为什么它每次返回此id的第一个引用。

你应该这样写:

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


...
target      : $(this).attr('rel')
...