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

标签 javascript jsf

我有一个问题,当 return false 被执行时, Action 仍然发生。我不明白这是什么问题。

<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 函数中我可以清楚地看到警报测试被调用但 Action 仍然被触发。请指导。

最佳答案

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

变化多端

onclick="javascript:statusCheck()"

onclick="return statusCheck()"

应该可以解决问题。我之前已经看到它(有时?)实际上需要从 onclick 的语句中返回一些东西。被调用的函数 (statusCheck()) 返回某些内容的事实并不意味着此返回值也进一步返回到 commandButton onclick。所以它总是继续调用 Action

关于javascript - 返回 false 不起作用,单击 h :commandButton 会触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34354839/

相关文章:

javascript - 关于 DOM 元素内部标识符

javascript - 使用字体系列、字体大小和颜色设置内容可编辑列表 (<li>)

jsf - 客户端 ID : j_id10 is duplicated in the faces tree. 组件

jsf - 如何在 JSF 中正确使用组件绑定(bind)? ( session 范围 bean 中的请求范围组件)

Action 属性中的 JSF 2.1 ValueExpression

jsf - 如何更改当前选定菜单项的颜色?

javascript - 允许使用 Javascript 的 Flash 弹出窗口

javascript - AngularJS - 基于 API 的实时搜索不会随着 ng-model 的变化而更新

javascript - Velocity JS 动态设置属性

ajax - 触发器 <cc :clientBehavior> event from <p:ajax> nested in composite