如何从onstart Javascript调用中取消事件

时间:2014-02-09 00:10:06

标签: javascript jsf primefaces

如何从onstart javascript函数中取消活动?

我试过这个,但事件没有取消。按钮代码:

<p:commandButton id="cmbtInsertar" value=Insertar"
    onstart="return verificarNulidad();"
</p:commandButton>

和功能代码:

function verificarNulidad() 
{   
    puedeInsertar = true;

    var frm = document.getElementById("formInicio");

    for (var i=0; i<frm.elements.length;i++)
    {   
        if((frm.elements[i].id.indexOf("XX") != -1 || frm.elements[i].id.indexOf("XX") != '-1') && (frm.elements[i].id.indexOf("focus") == -1 || frm.elements[i].id.indexOf("focus") == '-1')) 
        {
            var nombreCampo = (frm.elements[i].id.substring(frm.elements[i].id.indexOf("_")+1)).replace('_input','');

            if(frm.elements[i].value == null || frm.elements[i].value.trim == '' )
            {
                alert('El Campo '+nombreCampo+' no puede estar en blanco');
                puedeInsertar = false;
                frm.elements[i].focus;
                break;  
            }
            else if(frm.elements[i].value == '0' || frm.elements[i].value == 0 || frm.elements[i].value == '-1' || frm.elements[i].value == -1)
            {
                alert('El Campo '+nombreCampo+' no puede ser cero');
                puedeInsertar = false;
                frm.elements[i].focus;
                break;
            }
        }   
    }
    return puedeInsertar;   
}

1 个答案:

答案 0 :(得分:0)

我建议在按钮中调用JavaScript函数,并在该函数中决定何时调用bean方法。 PrimeFaces具有该任务的p:remoteCommand组件

<p:remoteCommand name="myCommand" actionListener="#{myBean.myCommand}" update=":myForm:mySth"/>

<p:commandButton value="Insertar" onclick="if (verificarNulidad()) myCommand()"/>