jquery星级评分插件需要帮助

时间:2009-06-17 18:36:53

标签: jquery asp.net-mvc

我正在从www.fyneworks.com/jquery/star-rating/添加星级评分插件,我发现文档相当模糊。可能只是因为我正在寻找错误的地方,这对我来说并不是那么不寻常。

我们在asp.net MVC应用程序上,我想在3个不同的页面中添加星级评级对象。在“创建评级”页面,我想实现5星评级,但我想隐藏或删除“删除”图标。换句话说,当我给用户提供评价的机会时,我想将其默认为3星,并且只允许他们投票1 - 5.我不希望他们能够将评级提交为零。 radiobuttons背后的概念将处理这个问题,除了“删除”选择覆盖了这一点 这是我目前的代码。

        <td>
            <strong>
                <label for="Rating">
                    Rating:</label></strong>
        </td>
        <td valign="top" width="180">
            <input name="rating" type="radio" class="star" value="1" />
            <input name="rating" type="radio" class="star" value="2" />
            <input name="rating" type="radio" class="star" value="3" checked="checked" />
            <input name="rating" type="radio" class="star" value="4" />
            <input name="rating" type="radio" class="star" value="5" />
        </td>

这是我的第一篇文章,所以我希望这是在协议内,我还有另一个关于同一个jquery的问题,我不知道我是否应该创建一个单独的问题或在此处添加它。现在我将在这里添加它,如果这是错误的,请告诉我,我将把它创建为一个单独的问题。

在应用程序的另一页面上,我想为每个实体显示多个评论以及评级。我看不出应该怎么做。我有一个foreach循环,用星级评分显示每个评论,但我的循环将所有评级的所有星标放在评论列表的顶部。换句话说,如果特定实体有6个评级,则显示30个星(6 x 5),然后显示6个摘要行。我假设我必须以某种方式动态更改循环中输入名称的名称,以获取与其摘要行关联的不同对象。这是代码:

<table>
<% foreach (var review in Model.Reviews)
   { %>
       <tr>
        <% if (!Model.IsSingleBusiness)
           { %>
               <td> 
                   <%= Html.ActionLink(Html.Encode(review.Title), "Details", new { id = review.ReviewId, eId = Model.Entity.EntityId })%>   
               </td>
         <% } %>
           <td valign="top">
               <%= Html.ActionLink("Details", "Details", new { id = review.ReviewId, eId = Model.Entity.EntityId })%>
               <br />Rating: <%= Html.Encode(review.Rating)%>
                    <input name="rating" type="radio" class="star" disabled="disabled" />
                    <input name="rating" type="radio" class="star" disabled="disabled" />
                    <input name="rating" type="radio" class="star" disabled="disabled" />
                    <input name="rating" type="radio" class="star" disabled="disabled" />
                    <input name="rating" type="radio" class="star" disabled="disabled" />
               <br />By: <%= Html.Encode(review.Reviewer.FullName)%>
           </td>
           <td valign="top">
               <%= Html.ActionLink(Html.Encode(review.Title), "Details", new { id = review.ReviewId, eId = Model.Entity.EntityId })%>
           </td>
       </tr>
<% } %>

</table>

提前感谢您的帮助。

鲍勃

3 个答案:

答案 0 :(得分:2)

您可以使用插件的设置参数来禁用取消按钮:

$.fn.rating.options = { required: true };

要在您的所有单选按钮上启用插件,并在页面上使用“星号”类,但不带取消按钮:

$(function(){
    $.fn.rating.options = { required: true };
    $('.star').rating({
        callback: function(value, link) {
            // To submit the form automatically:
            // this.form.submit();
            // To submit the form via ajax:
            $(this.form).ajaxSubmit();
        }
    });
});

答案 1 :(得分:1)

查看插件的代码,在第一个对象中你有函数.each(),你有代码创建取消按钮它的注释“//创建'取消'按钮” - 下面的评论代码。应该关闭取消按钮。要设置为默认3星,请通过在firebug中运行它来查看此代码的行为并更改您需要的内容。

答案 2 :(得分:1)

还有:

$(function(){
$('.star').rating({
    required: true,
    callback: function(value, link) {
        // To submit the form automatically:
        // this.form.submit();
        // To submit the form via ajax:
        $(this.form).ajaxSubmit();
    }
});

});