#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!