В настоящее время я работаю над индикатором выполнения YUI для страницы профиля на портале, и у меня возникли проблемы с обновлением панели после вызова AJAX.
Это исходный код в представлении.jsp, который отображает индикатор выполнения при загрузке страницы;
var pb = new YAHOO.widget.ProgressBar({value:<c:out value="${percentage}" />,minValue:0,maxValue:100}).render('divid');
Когда пользователи редактируют поле на странице, вызывается AJAX для обновления полей, а также процентное значение заполнения профиля.
Здесь также выполняется функция, которая должна обновлять индикатор выполнения, но она не работает.
function() {
items = this.get('responseData');
var percentage = items[0].value;
document.getElementById('percent').innerHTML = percentage + '%';
var element = document.getElementById("divid");
element.innerHTML = "";
renderProgressBar(percentage, "divid");
}
function renderProgressBar(percentage, id){
alert(percentage);
var pb = new YAHOO.widget.ProgressBar({value:10, minValue:0, maxValue:100}).render(id);
pb.set('value', percentage);
}
Процентное значение обновляется, так как я обновляю innerHTMLdiv в процентах, и он корректно обновляется.
Я также отображаю предупреждение в renderProgressBar, чтобы убедиться, что значение там также является правильным., это просто не работает, значение всегда пустое или пустое.
Любые идеи?
Я также пытался жестко закодировать добавление совершенно нового индикатора выполнения после очистки div tag, здесь вывод, когда страница отображается;
YAHOO.widget.ProgressBar({value:, minValue:0, maxValue:100}).render('divid');
Как видите, значение пусто.
UPDATE:
Из отчаяния я тожепопробовал другую функцию, где я вытаскиваю процент из одного из элементов, стоит выстрел, но все равно не имеет значения ...
function testFunction(percentage){
var el=document.getElementById('percent');
var pb = new YAHOO.widget.ProgressBar({value:el,minValue:0,maxValue:100}).render('basic');
}