2

私は次のサイトのレーティ スター評価 jQuery プラグインを使用しています: http://www.wbotelhos.com/raty/ by Washington Botelho。
1 つのフォームで複数の評価を使用しています。さまざまな評価は次のとおりです。

<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 つの入力に null 値が保存されていることです。私はそれに慣れていないので、私はAjaxを使用していません。私はphpを使用してフォームからデータを取得し、それをテーブルに保存しています。さまざまな隠し入力フィールドにさまざまな値を格納するための JavaScript コードを手伝ってくれる人はいますか?

4

2 に答える 2

0

コードを調べて、「on-stars」の src 属性を観察してください。私にとっては、on-stars の src 属性に star-on が含まれています。

        score: function() {
            return $('img[src*="star-on"]',$(this)).length;
        }
于 2013-04-14T23:08:44.237 に答える
-1

問題はここにあります:

target      : '#score-target'

セレクターを使用しています。これは、 「score-target」という名前のID#を意味します。HTML ではIDは一意です。そのため、この ID の最初の参照が返されるたびに返されます。

次のように sth を記述する必要があります。

<div id='star1' class='star' rel="score-target1"></div>
<input name='score1' type='hidden' id='score-target1' />
...


...
target      : $(this).attr('rel')
...
于 2012-07-06T12:51:06.263 に答える