首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XPages:引导Validator

XPages:引导Validator
EN

Stack Overflow用户
提问于 2014-10-13 06:54:28
回答 2查看 1.1K关注 0票数 1

我试图构建一个带有引导程序的Xpage (http://bootstrapvalidator.com/examples/mask/)来验证一个IP-Adress。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" id="testid">

<xp:this.resources>

    <xp:styleSheet href="/bootstrap.css"></xp:styleSheet>
    <xp:styleSheet href="/bootstrapValidator.min.css"></xp:styleSheet>

    <xp:script src="/jquery-1.11.1.js" clientSide="true"></xp:script>
    <xp:script src="/bootstrap.min.js" clientSide="true"></xp:script>
    <xp:script src="/bootstrapValidator.js" clientSide="true"></xp:script>
    <xp:script src="/jquery.mask.min.js" clientSide="true"></xp:script>

</xp:this.resources>



<xp:form id="maskForm">


    <div class="col-lg-5">

        <xp:inputText id="ipAddress" title="ipAddress">

        </xp:inputText>

    </div>


</xp:form>


<xp:scriptBlock>

    <xp:this.value><![CDATA[

var test = '#{javascript:getClientId("maskForm")}';

XSP.addOnLoad( function() {
$("#"+test)
    .bootstrapValidator({
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            ipAddress: {
                validators: {
                    ip: {
                        message: 'The IP address is not valid'
                    }
                }
            }
        }
    })
    .find('[name="ipAddress"]').mask('099.099.099.099');
});

]]></xp:this.value>
</xp:scriptBlock>
</xp:view>

你能告诉我我的错在哪里吗? Xpages是如何工作的?它不适用于我的inputText字段

谢谢你的帮忙

EN

回答 2

Stack Overflow用户

发布于 2014-10-13 12:11:24

jQuery掩码插件使用的是与XPages冲突的加载程序。因此,您的jQuery掩码插件根本不加载。

修复方法是从jquery.mask.min.js中移除使用AMD的部件。因此,打开jquery.mask.min.js并更改如下:

代码语言:javascript
复制
// jQuery Mask Plugin v1.7.7
// github.com/igorescobar/jQuery-Mask-Plugin
(function(f){"function"===typeof define&&define.amd?define(["jquery"],f) ...

对此:

代码语言:javascript
复制
// jQuery Mask Plugin v1.7.7
// github.com/igorescobar/jQuery-Mask-Plugin
(function(f){"function"===typeof define&&false?define(["jquery"],f) ...

这确保AMD不被用来加载插件。

更新:确保使用x$ XSnippet,以便jQuery选择器能够使用XPages客户端in中的冒号。

票数 6
EN

Stack Overflow用户

发布于 2014-10-13 11:28:14

一项建议是,将find行改为使用id:

代码语言:javascript
复制
.find('*[id$="ipAddress"]').mask('099.099.099.099');

Per的答案解决了这个次要问题,但是,我发现当将->文件添加到我的xpage资源中时,它不会导致页面上的jquery执行,在firebug控制台中没有任何错误。我从mask.min.js中提取了这里内容。即使是下面的代码也不能处理资源中的掩码js文件:

代码语言:javascript
复制
<xp:scriptBlock id="script1">
    <xp:this.value><![CDATA[
        XSP.addOnLoad( function() {
            $("*[id$='msg']").html("JQUERY Working");
        });]]>
    </xp:this.value>
</xp:scriptBlock>
<xp:div id="msg"></xp:div>

一旦我删除了掩码资源,上面的工作就可以了。我正在使用jQuery2.1.1。我建议您也尝试这样的方法,以检查掩码插件是否是问题的根源。

更新:我创建了一个可以工作的jsfiddle:http://jsfiddle.net/m2325jhc/2/。我发现使用名称查找对象存在问题,但是它使用id来工作。佩尔的回答解决了jquery在我的xpage应用程序中破坏的问题,并使用了掩码插件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26334425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档