2015-07-21 38 views
0

我试图根据Victor的ideas将欧芹和Bootstrap一起玩。但Parsley在输入下面显示err-msg,而不是在工具提示中,因为Victor的代码试图存档。所以我修改了“classHandler”-fn并添加了console.output来查看它是否被执行 - 而且我没有得到任何输出。欧芹:classHandler没有执行?

HTML

<form id="regform" class="form-horizontal" method="post"> 
<div class="form-group"><label class="control-label col-lg-3" for="name_k">Schüler <i class="fa fa-user fa-fw"></i></label> 
<div class="col-lg-9"><input id="name_k" name="name_k" placeholder="Vor- und Nachname des Kindes (z.B: &quot;Karl Musterkind&quot;)" type="text" class="form-control col-lg-9" data-parsley-required="true" data-error-message="Bitte geben Sie Vor- und Nachname des Kindes an!" > 
</div> 
</div> 
    <input type="Submit" class="btn btn-primary" value="Absenden"> 
    </form> 

JS:

$(document).ready(function() { 
    var parsleyOptions = { 
    // Sets success and error class to Bootstrap class names 
    successClass: 'has-success', 
    errorClass: 'has-error', 

    // Bootstrap needs success/error class to be set on parent element 
    errors: { 
    classHandler: function(el) { 
     console.log("Error-handler!"); 
     // return el.$element.closest(".form-group"); 
     return el.parent(); 
    }, 
    // Set these to empty to make sure the default Parsley elements are not rendered 
    errorsWrapper: '', 
    errorElem: '' 
    }, 
    listeners: { 
    // Show a tooltip when a validation error occurs 
    onFieldError: function (elem, constraints, parsleyField) { 
     elem.tooltip({ 
     animation: false, 
     container: 'body', 
     placement: 'top', 
     title: elem.data('error-message') 
     }); 
    }, 
    // Hide validation tooltip if field is validated 
    onFieldSuccess: function(elem, constraints, parsleyField) { 
     elem.tooltip('destroy'); 
    } 
    } 
}; 
      $('#regform').parsley(parsleyOptions); 
}); 

我也把一个fiddle,但不幸的发帖时有CSRF-问题,所以我米不知道这是否有任何帮助。

由于维克多的文章已经2岁了,也许它指的是欧芹1.x?不幸的是,我没有“得到”文件以证实这个想法,仍然有类别处理者被提及等,并且我没有足够的欧芹经验来“看到”......

+1

这些选项似乎是Parsley v1 –

回答

0

在另一个enter link description here ,我发现这个代码(我修改香菜2.1):

$.listen('field:error', function (fieldInstance) { 

    arrErrorMsg = ParsleyUI.getErrorsMessages(fieldInstance); 
    errorMsg = arrErrorMsg.join(';'); 

    fieldInstance.$element 
     .popover('destroy') 
     .popover({ 
      container: 'body', 
      placement: 'right', 
      content: errorMsg 
     }) 
     .popover('show'); 

}); 

$.listen('field:success', function (fieldInstance) { 
    fieldInstance.$element.popover('destroy'); 
}); 

但是这给了我一个关于发布订阅,东西被弃用警告 - 我会打开一个新的q为那一个。