欧芹表单验证 - 事件监听器

2024-02-23

好的,所以我已经到处寻找这个,但仍然无法让它工作。似乎没有人尝试过,但我确信它可以做到。

我想在我的 Twitter 引导项目中使用 Parsley 验证插件。我已经阅读了文档,但仍在学习 JQuery,所以它超出了我的理解范围(我正在合理化它目前对我来说太先进了)。

我想向 Parsley 添加一个自定义事件监听器,以显示错误时的弹出窗口,而不是丑陋的 li 。这是我尝试过的:

JQUERY

$(document).ready(function () {

    $('.parsley').parsley({
        successClass: 'success',
        errorClass: 'error',
        errors: {
            classHandler: function(el) {
                return $(el).closest('.form-control');
            },
            errorsWrapper: '<div class=\"popover fade top in\" style=\"top: -20px\"></div>',
            errorElem: '<div></div>'
        }
    });


    $('.test').parsley({

        successClass: 'success',
        errorClass: 'error',
        errors: {
            classHandler: function(el) {
                return $(el).closest('.form-control');
            },
            errorElem: '<div></div>'
        },

        onFieldValidate: function ( elem ) {

            // if field is not visible, do nothing.
            if ( !$( elem ).is( ':visible' ) ) {
                $(elem).popover({
                    placement : 'top',
                    title : 'Test',
                    content : '<div id="popOverBox"><h4>Test</h4></div>'
                });
                $(elem).popover('show');
                return true;
            } else {
                $(elem).popover('hide');
                return false;
            }
        }

    });

});

顶部功能的一半工作(仅显示气泡)只是为了使其暂时工作而进行的黑客攻击。

HTML

<head>

    <script src="../assets/js/jquery.js"></script>
    <script src="../assets/js/bootstrap.js"></script>
    <script src="../assets/js/bootstrap-tooltip.js"></script>
    <script src="../assets/js/bootstrap-popover.js"></script>
    <script src="../assets/lib/parsley/parsley.min.js"></script>

</head>

<form class="test" data-validate="parsley" novalidate>
    <input type="text" name="test" value="test" data-required="true" data-trigger="keyup change">
</form>

谁能帮我让它工作吗? 注意:我更喜欢引导工具提示(而不是弹出窗口),但如果有人可以帮助我,我将不胜感激。


你正在做你不应该做的事。看着欧芹文档 http://parsleyjs.org/documentation.html#javascript人们可以看到这样的警告:

您必须删除 data-validate="parsley" 自动绑定代码 表单 DOM 允许您覆盖默认处理和使用 欧芹纯粹来自 javascript。

之后你可以做$('.test').parsley(...).

另请注意,您错误地悬挂了侦听器。正确的方法是把它们放进去listenter: {}属性就像这样:

$('.test').parsley({
    listeners: {
        onFieldValidate: function(elem, ParsleyField) {
            console.log("validate", elem);
            return false;
        },
        onFieldError: function(elem, constraints, ParsleyField) {
            console.log("error", elem);
        }
    }
});

简单的例子可以找到here http://jsfiddle.net/c6St6/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

欧芹表单验证 - 事件监听器 的相关文章

随机推荐