返回false不起作用,单击h:commandButton将触发操作



当执行return false时,操作仍在进行时,我遇到了一个问题。我不明白问题出在哪里。

<h:commandButton value="Deny" style="margin-left: 5px;" id="button"                     
action="#{myController.submitRequest('deny', 'return')}"
onclick="javascript:statusCheck();"/>

JS代码:

function statusCheck()
                {
                    var msgArray = [];
                    var validate = true;
                    var status=  document.getElementById('userValue:statusId');
                    if(status.value.trim() == "")
                    {
                        msgArray.push("Status required");
                        alert("check");
                        validate = false;
                    }
                    alert("after check");
                    alert(validate);
                    if(validate) {
                        return true;
                    }
                    else
                    {
                      if(msgArray.length >0)
                      {
                            alert(msgArray.join('n'));
                            alert("test");
                            return false;
                      }
                    }   
                }

现在,在上面的JS函数中,我可以清楚地看到调用了警报测试,但仍然触发了操作。请引导。

实际上应该onclick属性内的javascript返回一些东西。

所以改变

onclick="javascript:statusCheck()"

onclick="return statusCheck()"

应该做到这一点。我以前看到过(有时?)实际上需要从onclick中的语句中返回一些东西。被调用的函数(statusCheck())返回一些东西,这并不意味着这个返回值也会进一步返回到commandButton onclick。因此它总是继续调用动作

最新更新