Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示基于欧芹验证的JqueryUI工具提示_Javascript_Jquery_Validation_Jquery Ui_Parsley.js - Fatal编程技术网

Javascript 显示基于欧芹验证的JqueryUI工具提示

Javascript 显示基于欧芹验证的JqueryUI工具提示,javascript,jquery,validation,jquery-ui,parsley.js,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) {

我在让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');
    });
我的方法是:

  • 检查工具提示是否存在(当多次验证发生时),如果它确实销毁了它
  • 使用适当的消息创建工具提示
  • 显示工具提示
  • 但我刚刚得到一个控制台错误:

    未捕获错误:工具提示小部件实例没有此类方法“显示”


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

    您的代码有一些问题:

  • 主要问题是您正在调用
    .tooltip('show')但是,根据报告,没有这样的方法或事件。您必须使用
    .tooltip('open')
  • content
    选项,您将传递一个数组。您需要使用类似于
    messages.join(“
    ”)的内容来内爆
    messages
    数组。
  • 为了仅在工具提示中显示错误,您需要更改parlsey的默认选项,特别是
    errorsContainer
    ErrorsRapper
  • 您的最终代码如下所示(在中测试):

    $(文档).ready(函数(){
    $(“我的形式”)。欧芹({
    errorsContainer:函数(ParsleyField){
    返回ParsleyField.$element.attr(“标题”);
    },
    errorsWrapper:false
    });
    $.listen('parsley:field:error',函数(fieldInstance){
    var messages=ParsleyUI.getErrorsMessages(fieldInstance);
    if(fieldInstance.$element.tooltip('instance')!=未定义){
    fieldInstance.$element.tooltip('destroy');
    }
    fieldInstance.$element.tooltip({
    内容:messages.join(“
    ”), 项目:fieldInstance.$element, 节目:“脉动” }); fieldInstance.$element.tooltip('open'); }); });
    太棒了!实际上,我已经发现了“开放”问题,错误容器等已经是我插件的一部分(我刚刚忘记了它在那里),我只是根据你的建议更改了内容属性,并且成功了。干得好,我希望这个答案对将来的人有所帮助。
    $(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');
        });
    });