使用JavaScript更改<p:commandButton>值

Adr*_*tro 4 javascript jsf primefaces jsf-2

有没有办法<p:commandButton>用Javascript 更改值?

我试图设置一个widgetVar,<p:commandButton>但它没有任何setValue()功能或类似的东西.由于我的XHTML的其他特定问题,我无法将其绑定到托管bean.

Bal*_*usC 6

JSF生成HTML.JavaScript适用于HTML.在编写JavaScript代码时,如果您已经无法告诉表单最终会生成什么样的HTML代码,请不要过多地查看JSF源代码.

在您喜欢的浏览器中打开JSF页面,右键单击并查看源代码.生成的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>
Run Code Online (Sandbox Code Playgroud)

看,按钮有一个<span>孩子,其中有值.

所以,这段JS改变按钮的值bar应该做到:

document.getElementById("formId:buttonId").firstChild.innerHTML = "bar";
Run Code Online (Sandbox Code Playgroud)