我有下一个代码:
<h:form name="frm">
<h:panelGroup>
<p:commandButton value="Good" id='good' action="#{job.SetGood}" accesskey="g"/>
<p:commandButton value="Bad" id='bad' action="#{job.SetBad}" accesskey="b"/>
</h:panelGroup>
我需要用户可以只使用键空间“按下”id ='good'的按钮,使用键“退格”使用id ='bad'的按钮我尝试很多东西但不是工作...例如我尝试在负载上调用函数cargar()并且无法工作......有人可以帮助我吗?
function cargar()
{
document.getElementById("good").focus();
document.onkeypress=function(e)
{
var esIE=(document.all);
var esNS=(document.layers);
tecla=(esIE) ? event.keyCode : e.which;
if(tecla==32)
{
frm.submit();
<!--Also I try: document.getElementById("good").click();-->
}
};
}
答案 0 :(得分:0)
尝试设置属性prependId:
<h:form name="frm" prependId="false">
这将呈现像
这样的按钮<button id="good" name="good" ...
如果您使用默认值(prependId =“true”),则按钮将呈现为
<button id="j_idt14:good" name="good" ...
在这种情况下,j_idt14是父表单组件的id。
javascript函数可能无法在代码document.getElementById("good")
答案 1 :(得分:0)
你可以做到这一点。
<h:form name="frm">
<p:remoteCommand name="executeAction" listener="#{job.SetGood}" update="frm" />
<h:panelGroup>
<p:commandButton value="Good" id='good'
accesskey="g" onfocus="executeAction();" />
<p:commandButton value="Bad" id='bad' action="#{job.SetBad}" accesskey="b"/>
</h:panelGroup>
</h:form>
<p:remoteCommand
将在<p:commandButton
获得焦点时执行。