简体   繁体   English

使用parsley.js添加自定义CSS类

[英]Add a custom CSS class with parsley.js

Using ParsleyJS, I have some custom javascript to add/remove a CSS class to an icon based on if the input is valid. 使用ParsleyJS,我有一些自定义Javascript,可根据输入是否有效将CSS类添加/删除到图标。 Everything works, except when a user enters one input successfully and tabs/goes to the next input. 一切正常,除非用户成功输入一个输入并跳至下一个输入。 When that happens, the class is applied to the icon even though the input is not valid. 发生这种情况时,即使输入无效,也将类应用于图标。

See fiddle: https://jsfiddle.net/cfw80607/1/ 参见小提琴: https : //jsfiddle.net/cfw80607/1/

JavaScript: JavaScript的:

$('form').parsley().subscribe('parsley:field:validate', function (fieldInstance) {
    if ($('#name').parsley().isValid()) 
        $('.fa-user').addClass('cta-success').removeClass('cta-error');
    else
        $('.fa-user').addClass('cta-error').removeClass('cta-success');
    if ($('#email').parsley().isValid())
        $('.form-group .fa-envelope').addClass('cta-success').removeClass('cta-error');
    else
        $('.form-group .fa-envelope').addClass('cta-error').removeClass('cta-success');
});

I think your want to use listeners on each field 我认为您想在每个领域使用监听器

$('form').parsley();

$.listen('parsley:field:error', function(ParsleyField) {
    ParsleyField.$element.prev('i.fa').removeClass('cta-success').addClass('cta-error');
});
$.listen('parsley:field:success', function(ParsleyField) {
    ParsleyField.$element.prev('i.fa').removeClass('cta-error').addClass("cta-success");    
});

Example here https://jsfiddle.net/acidrat/wqpr4gcq/ 这里的例子https://jsfiddle.net/acidrat/wqpr4gcq/

Maybe you could use the focusout as well as the change. 也许您可以使用聚焦以及更改。 data-parsley-trigger="change focusout"

https://jsfiddle.net/cfw80607/2/ https://jsfiddle.net/cfw80607/2/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM