我正在使用本网站上的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输入字段中吗?
答案 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')
...