如何获得jquery明星的id值?

时间:2012-03-08 10:13:53

标签: jquery

在我的页面上,我有单选按钮......

<div class="stars-wrapper1">    
   <input type="radio"  name="newrate" value="1" title="VeryPoor" @Html.Raw((Model.review == 1?"checked=\"checked\"":""))  />                        
   <input type="radio"  name="newrate" value="2" title="Poor" @Html.Raw((Model.review == 2?"checked=\"checked\"":""))  />    
   <input type="radio"  name="newrate" value="3" title="Average"  @Html.Raw((Model.review == 3?"checked=\"checked\"":"")) />
   <input type="radio" name="newrate" value="4" title="Good" @Html.Raw((Model.review == 4?"checked=\"checked\"":"")) />
   <input type="radio"  name="newrate" value="5" title="Excellent"@Html.Raw((Model.review == 5?"checked=\"checked\"":""))  />     
   <input type="hidden" name="rate" value="@Model.ThePhoto.ID" disabled="disabled">                    
</div>

它们是单选按钮,当我使用星号函数时,它们变成了这个......

<div class="stars-wrapper1">    
   <input type="hidden" name="rate" value="41" disabled="disabled">                    
      <div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
          <a title="">1</a></div>
      <div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
          <a title="">2</a></div>
      <div class="ui-stars-star ui-stars-star-on ui-stars-star-disabled">
           <a title="">3</a></div>
      <div class="ui-stars-star ui-stars-star-disabled">
           <a title="">4</a></div>
      <div class="ui-stars-star ui-stars-star-disabled">
           <a title="">5</a>
      </div>
       <input type="hidden" name="newrate" value="0" disabled="disabled">
 </div>

当我点击一个星星我隐藏的值,所以我可以保存到我的数据库这是这张照片收到的评级,但我不能得到'这个'隐藏的价值,我得到41的时间第一个照片ID,有页面上有几个这些星星有不同的隐藏ID

jquery的:

$(document).ready(function () {
    $(".stars-wrapper1").stars({
        oneVoteOnly: true
    });
    $('.stars-wrapper1 a ').click(function () {
        alert($('input:hidden[name$=rate]').val());
    });
}); 

在一个页面上有许多不同的图像与这些星星,所以rel是我试图找出用户评价的图像。

这是我得到明星形式...... Star Rating Plugin

4 个答案:

答案 0 :(得分:1)

该值存储在隐藏输入中。你可以尝试类似的东西:

$('.stars-wrapper1 a ').click(function () {
    alert($('input:hidden', this).val());
});

更准确地说,输入的名称似乎以rate结尾,所以你也可以尝试

$('.stars-wrapper1 a ').click(function () {
    alert($('input:hidden[name$=rate]', this).val());
});

答案 1 :(得分:1)

如果您想删除所有隐藏字段中的禁用以获得星级评分,您可以执行以下操作

$(".stars-wrapper1").stars({
        oneVoteOnly: true,
        callback: function(ui, type, value)
                {
                    $(':hidden').removeAttr('disabled')
                }
    });

它将从所有隐藏字段中删除已禁用

答案 2 :(得分:1)

我不确定你对这个星级评分系统有多远,我现在正在努力实现另一个使用无线电输入的方法。我访问了您链接到的网站,我没有看到任何星级评定的工作示例。我只看到下拉菜单和实际的单选按钮。

我还注意到该网站说没有补丁的情况下它不适用于jQuery 1.6,所以我猜不会支持更新版本的jQuery。

我正在使用的那个非常好,虽然我一直在努力使用一些jQuery来保存对数据库的评级,并在表格中将其读出来。它没有内置的数据库支持。http://www.fyneworks.com/jquery/star-rating/

这个看起来非常好,http://rateit.codeplex.com/releases/view/55958因为它使用范围而不是无线电,看起来更健壮,并且支持jQuery 1.6到1-7.2。我可以切换到这个,但我刚刚完成了我的数据库工作与另一个。

我知道这不能回答你的问题,但你选择的系统看起来不受支持而且没有现代化,所以如果你没有投入大量时间,你可能想要转换。

答案 3 :(得分:0)

他们页面上的示例创建了一个名为=“rate”的隐藏输入,它存储了所选的值。

所以你应该能够得到这样的价值:

$('.stars-wrapper1 a ').click(function () {
    var result = $('input[name="rate"]').val();
    alert(result);
});