2012-05-10 2 views
4

Есть ли способ изменить значение <p:commandButton> с помощью Javascript?Изменить значение <p: commandButton> с помощью JavaScript

Я попытался установить widgetVar в <p:commandButton>, но он не имеет функции setValue() или что-то в этом роде. Я не могу связать его с управляемым компонентом из-за других конкретных проблем с моим XHTML.

ответ

5

JSF генерирует HTML. JavaScript работает с HTML. При написании кода JavaScript не смотрите слишком много на исходный код JSF, если вы уже не можете отличить верхнюю часть формы от того, какой именно код HTML будет генерировать.

Открыть страницу JSF в вашем любимом браузере, rightclick и Просмотреть исходный код. Сгенерированный HTML выход из <p:commandButton value="foo" /> выглядеть следующим образом:

<button id="formId:buttonId" name="formId:buttonId" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="PrimeFaces.ab({formId:'formId',source:'formId:buttonId',process:'@all'});return false;" type="submit"> 
    <span class="ui-button-text">foo</span> 
</button> 

Посмотрите, кнопка имеет один <span> ребенка в нем значения.

Таким образом, эта часть JS, чтобы изменить значение кнопки на bar должны сделать:

document.getElementById("formId:buttonId").firstChild.innerHTML = "bar"; 
+1

я вижу, это то, что я делал раньше, но думал, что способ борьбы с WidgetVar. Большое спасибо за вашу помощь. –

+0

Конечно! Спасибо за совет. –

Смежные вопросы