ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 如何使用XSP.partialRefreshPost方法禁用验证器?

2019-09-28 01:35:24  阅读:168  来源: 互联网

标签:xpages javascript


我正在使用XSP.partialRefreshPost来触发客户端Javascript的部分刷新.我希望能够在不触发验证器的情况下进行局部刷新(这只是普通输入控件的一个简单属性).

我找到了几个对“options”参数的引用,你可以将它们与XSP.partialRefreshPost结合使用(包括控制验证的能力).但是,我还没有找到任何描述语法/选项名称的地方???

谁知道怎么做?

编辑:

好的,我已经添加了几个我尝试过的例子 – 澄清问题.我也在XPages便携式命令指南中嗤之以鼻.

首先,使用“立即”参数:

$(".selectCtrl").on("change", function(e){XSP.partialRefreshPost("#{id:repeatCtrl}", {immediate: true})})

然后,使用“valmode”参数:

$(".selectCtrl").on("change", function(e){XSP.partialRefreshPost("#{id:repeatCtrl}", {params: {'valmode': 0}})})

后者在“valmode”和“0”周围引用了变化.

这些都没有奏效……(即刷新开始 – 但是验证器失败了).我希望我在这里得到错误的语法 – 但是还没有找到任何有用的例子 – 但是;-)

解决方法:

这是一个PhaseListener,如果需要,它会禁用验证:

package ch.hasselba.demo;

import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import com.ibm.xsp.context.ExternalContextEx;
import com.ibm.xsp.context.FacesContextExImpl;

public class DisableValidationPhaseListener implements PhaseListener {

    private static final long serialVersionUID = 1L;

    public void afterPhase(PhaseEvent arg0) {}

    public void beforePhase(PhaseEvent arg0) {
        FacesContextExImpl fc  = (FacesContextExImpl) arg0.getFacesContext();
        ExternalContextEx ec = (ExternalContextEx) fc.getExternalContext();

        // check for the "disableValidation" parameter & disable validation
        // if required
        if( ec.getRequestParameterMap().containsKey("disableValidation") )
            fc.setDisableValidators(true);
    }

    public PhaseId getPhaseId() {
        return PhaseId.PROCESS_VALIDATIONS;
    }

}

您只需要在PartialRefresh中添加一个参数,并禁用验证:

XSP.partialRefreshPost('#{id:refreshMe}', {'params': {'disableValidation':true}} );

标签:xpages,javascript
来源: https://codeday.me/bug/20190928/1825245.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有