Javascript Wicket AjaxCallListener GetPremission方法不';行不通
我正在使用AjaxLink,我想在某些情况下停止它的“onClick”方法执行。一个解决方案是名为“AjaxCallListener”的类,该类具有方法“getPremission()”,在该类中,您可以调用任何javascript函数,无论结果是否为“false”,AjaxLink的“onClick”都不会执行。这个“AjaxCallListener”被添加到ajaxRequest的属性中Javascript Wicket AjaxCallListener GetPremission方法不';行不通,javascript,java,wicket,Javascript,Java,Wicket,我正在使用AjaxLink,我想在某些情况下停止它的“onClick”方法执行。一个解决方案是名为“AjaxCallListener”的类,该类具有方法“getPremission()”,在该类中,您可以调用任何javascript函数,无论结果是否为“false”,AjaxLink的“onClick”都不会执行。这个“AjaxCallListener”被添加到ajaxRequest的属性中 @Override protected void updateAjaxAttributes(AjaxRe
@Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
attributes.getAjaxCallListeners().add(new AjaxCallListener() {
@Override public CharSequence getPrecondition(Component component) {
return "isPropagationAllowed();";
}
});
}
然后在js文件中的某个地方:
函数isPropagationAllowed(){
警报('调用函数')
返回false;
}
警报已被调用,但服务器上的进一步执行仍然有效。您应该编写“return${functionName}()”,作为“getPremission”方法的结果:
您应该编写“return${functionName}()”,作为“getPremission”方法的结果:
如果你移动了警报(“”),该怎么办?仍然不起作用?它不起作用,因为该函数的结果没有返回,所以它需要在Java中明确地执行如果您的Emove alert(“”),该怎么办?仍然不工作?它不工作,因为该函数的结果没有返回,所以需要在Java中明确地完成
@Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
attributes.getAjaxCallListeners().add(new AjaxCallListener() {
@Override public CharSequence getPrecondition(Component component) {
return "return isPropagationAllowed()";
}
});
}