javascript - 基于欧芹验证显示 JqueryUI 工具提示

标签 javascript jquery validation jquery-ui parsley.js

我在让 JQueryUI 工具提示小部件与欧芹验证一起工作时遇到了一些问题。这是我的代码:

    $.listen('parsley:field:error', function (fieldInstance) {
        var messages = ParsleyUI.getErrorsMessages(fieldInstance);

        if(fieldInstance.$element.tooltip('instance') != undefined) {
            fieldInstance.$element.tooltip('destroy');
        }

        fieldInstance.$element.tooltip({
            items: fieldInstance.$element,
            content: messages,
            show: 'pulsate'
        });

        fieldInstance.$element.tooltip('show');
    });

我的方法是:

  1. Check if a tooltip exists (as multiple validation occur), if it does destroy it.
  2. Create the tooltip with the appropriate message
  3. Show the tooltip

但我只是得到一个控制台错误:

Uncaught Error: no such method 'show' for tooltip widget instance

此外,如果有人认为有更好的方法,请不要犹豫回答!

最佳答案

您的代码存在一些问题:

  1. 主要问题是您正在调用 .tooltip('show');但是根据 API documentation 没有这样的方法或事件.你必须使用 .tooltip('open') .
  2. content选项 accepts a function or string你正在传递一个数组。你需要内爆 messages类似 messages.join('<br />') 的数组
  3. 为了仅在工具提示中显示错误,您需要更改 parlsey 的默认选项,特别是 errorsContainererrorsWrapper .

你的最终代码将是这样的(在 this jsfiddle 中测试):

$(document).ready(function() {
    $("#myForm").parsley({
        errorsContainer: function (ParsleyField) {
            return ParsleyField.$element.attr("title");
        },
        errorsWrapper: false
    });

    $.listen('parsley:field:error', function (fieldInstance) {
        var messages = ParsleyUI.getErrorsMessages(fieldInstance);

        if(fieldInstance.$element.tooltip('instance') != undefined) {
            fieldInstance.$element.tooltip('destroy');
        }

        fieldInstance.$element.tooltip({
            content: messages.join('<br />'),
            items: fieldInstance.$element,
            show: 'pulsate'
        });

        fieldInstance.$element.tooltip('open');
    });
});

关于javascript - 基于欧芹验证显示 JqueryUI 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28915526/

相关文章:

Javascript 复选框验证

javascript - 如何使用 js 或 jQuery 向 ajax 请求添加自定义 HTTP header ?

JavaScript 输入阿拉伯字母验证

javascript - header 中带有 javascript 链接的 JQuery slidetoggle div 不会触发

jquery - IE9 没有将 css 应用到使用 jQuery.after 动态创建的元素

javascript - 如何在 Meteor 中优化用户上传的图像以及服务器上现有的图像

validation - 具有一对多的未保存域类以随机顺序返回子对象

regex - 常规 Exp 验证 Zero 的

javascript - 仅使用位置隐藏右侧边栏

javascript - 如何让 Magnific Popup 与 Browserify 一起工作