Jquery星级仅显示在第一行而不是表中的所有行

时间:2014-06-20 20:41:23

标签: jquery asp.net-mvc-3

我使用MVCContrib创建MVC3以显示我的网格。网格中的一列是明星评估者。

下面是我的代码,显示我如何调用我的用户率和我的jquery。

我的问题是,费率的星星只显示在第一条记录上,而不是所有记录。

有人可以帮忙吗? ..请

<div id="grid">
 @{
    Html.Grid(Model).Columns(column =>
    {
        column.For(c => c.taUserName).Named("Agent").HeaderAttributes(@class => "gridheader").Attributes(style => "width:15%");
        column.Custom(@<div id="star-rating">
                            <input type="radio" name="@column.For(c => c.userRate)" class="rating" value="1" />
                            <input type="radio" name="@column.For(c => c.userRate)" class="rating" value="2" />
                            <input type="radio" name="@column.For(c => c.userRate)" class="rating" value="3" />
                            <input type="radio" name="@column.For(c => c.userRate)" class="rating" value="4" />
                            <input type="radio" name="@column.For(c => c.userRate)" class="rating" value="5" />
                       </div>);

    }).Render();
  }
</div>

<script type="text/javascript">
    $(function () {                   // Start when document ready
        $('#star-rating').each(function () {
            //Get the hidden field data and set it to the rating plugin
            $(this).rating();
        }); // Call the rating plugin
    });
</script>

1 个答案:

答案 0 :(得分:1)

如评论中所述,ID应该是唯一的。切换到课程将解决您的问题。

另一种应该工作的方式(但使用类绝对是一个更好的选择),是选择使用属性选择器,其中id是属性: $(&#34; [ID =&#39;星级评定&#39;]&#34) 该选择器将选择具有指定id的所有元素,而不是仅选择第一个。