当执行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。因此它总是继续调用动作