Переменная Javascript не разрешается, отображается как пустое или нулевое значение - PullRequest
3 голосов
/ 24 ноября 2011

В настоящее время я работаю над индикатором выполнения 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');
}

1 Ответ

0 голосов
/ 24 ноября 2011

Я думаю, вы запутались с параметрами функции render. Как вы можете видеть здесь , первый параметр - это идентификатор элемента html. Вы помещаете туда «базовый», а должны - «разделенный».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...