有没有办法用Javascript更改<p:commandButton>
值?
我尝试在widgetVar
中设置<p:commandButton>
,但它没有任何setValue()
功能或类似的内容。由于我的XHTML的其他特定问题,我无法将其绑定到托管bean。
答案 0 :(得分:6)
JSF生成HTML。 JavaScript适用于HTML。在编写JavaScript代码时,如果您已经无法告诉表单最终会产生什么样的HTML代码,请不要过多地查看JSF源代码。
在您喜欢的浏览器中打开JSF页面,右键单击查看源。生成的<p:commandButton value="foo" />
的HTML输出如下所示:
<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>
子项,其中包含值。
因此,将这个按钮值改为bar
的JS应该这样做:
document.getElementById("formId:buttonId").firstChild.innerHTML = "bar";
答案 1 :(得分:0)
这是使用widgetVar的更好方法:
让我们说我们将ConfirmWgt设置为
widgetVar, 设置其值的javascript代码为:
PF('confirmWgt').jq.text("New Value");
使用这种方式,您可以确定将来Primefaces应用的html代码中的任何更改不会对版本更新造成任何问题。