2012-07-06 53 views
2

我使用的是來自此站點的raty star評級jQuery插件:http://www.wbotelhos.com/raty/ by Washington Botelho。
我在單一表單中使用多個評分。不同的評級是這樣的: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> 

的問題是,只能從最後一個等級的分數獲得存儲在我的投入,第2個輸入存儲空值。我不使用Ajax,因爲我不熟悉它。我使用PHP從表單獲取數據,然後將其存儲在表中。任何人都可以幫助我與JavaScript代碼存儲不同的值在不同的hiddne輸入字段?

+1

所有3個輸入都有相同的ID,這就是你的問題 – Nick 2012-07-06 12:48:51

+0

@Nick是的,我知道...但插件的文檔說,你可以將評分分數存儲在id爲'target'的容器中:##目標「,因爲所有的評級都屬於同一個班級,所以我需要找出一種方法來存儲不同的值船隻 – 2012-07-07 04:51:37

回答

-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') 
... 
+0

感謝您的幫助。但是你真的看到了這個插件,並親眼看到了它的代碼嗎? – 2012-07-06 18:06:23

+0

順便說一句,它沒有幫助解決問題:( – 2012-07-07 04:47:45

0

檢查你的代碼並觀察src屬性「上星」對我來說,對明星」中包含星上src屬性

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