Как установить начальное значение виджета звездного рейтинга с сервера

#jquery #html

#jquery #HTML

Вопрос:

Я использую виджет звездного рейтинга и пытаюсь установить начальное значение виджета из значения, которое я получаю от сервера. Я знаю, что принцип заключается в том, чтобы установить параметр по умолчанию selected , но я не могу понять, как это сделать. У некоторых виджетов есть setDefault метод, но не этот, поэтому должен быть другой способ.

Любая помощь была бы потрясающей.

Вот HTML:

 <div id="stars_content" style="padding-top:6px;">
            <select id="ContentRating" name="ContentRating">
                <option value="1">Very Poor</option>
                <option value="2">Poor</option>
                <option value="3">OK</option>
                <option value="4">Good</option>
                <option value="5">Very Good</option>
            </select>
            <span id="content_hover" style="padding-left:5px;"></span>
</div>
  

И вот jQuery:

 $("#stars_content").stars({
        inputType: "select",
        captionEl: $('#content_hover')
    });
  

Ответ №1:

Вы могли бы сделать это вручную

 $("#stars_content option[value=3]").attr("selected",true);
  

это должно сделать это.

Редактировать

похоже, что API этого виджета предоставляет параметр для этого

 $("#stars-wrapper1").stars("select", 1); // select first Star (see element Value in HTML source)
  

Таким образом, ваш код будет

 $("#stars_content").stars({
    inputType: "select",
    captionEl: $('#content_hover'),
    select:3
});
  

… Я думаю

Комментарии:

1. Я бы подумал, что это тоже сработает, но это не так. Я подумал, что, должно быть, неправильно понял использование, поскольку объяснение на сайте неоднозначно. Тем не менее, спасибо!

2. Вы наставили меня на правильный путь, и с некоторой настойчивостью я заставил его работать $("#stars_content").stars("select", parseInt({{ program.ContentRating }}));

Ответ №2:

Я не знаю, как вы получаете «выбранную скорость» с сервера, но предположим, что это via $.get , а номер скорости сохраняется в var selected_rate , чем вы могли бы сделать что-то вроде:

 var selected_rate = 3; //supposing its 3 ('OK')
$('#stars_content option[value='   selected_rate   ']').attr('selected', true)
  

Комментарии:

1. спасибо, но проблема в том, что ‘#stars_content’ — это просто div. Так что у него не будет опций, верно? Идентификатор, который я установил для элемента выбора, перезаписывается виджетом. Aarrrggghh!