【问题标题】:parsley.js how to trigger an error on a field with a custom error messageparsley.js 如何使用自定义错误消息触发字段上的错误
【发布时间】:2014-01-15 21:07:37
【问题描述】:

如果能做这样的事情就好了

$('input.specific-field').parsley('error', 'this is a custom error message');

...但我想这是不可能的?

我怎么能做到这样?

【问题讨论】:

    标签: javascript jquery html css parsley.js


    【解决方案1】:

    这就是我为 Parsley 2.8 工作的方式:

    field.parsley().removeError('customValidationId');
    field.parsley().addError('customValidationId', {message: "myCustomError"});
    

    http://parsleyjs.org/doc/index.html#psly-ui-for-javascript

    这是一个交钥匙解决方案,我用来显示从 AJAX 到由其 id 标识的字段的错误:

    // Removing errors from previous AJAX call
    if ($('.js_error').length) {
        $('.js_error').parsley().removeError('myError');
        $('.js_error').removeClass('.js_error');
    }
    
    // Showing errors from current AJAX call
    for (var idField in ajaxErrors) {
        var msg = ajaxErrors[idField];
        var field = $('#field_' + idField);
        if (field.length) {
            field.addClass('js_error');
            field.parsley().removeError('myError');
            field.parsley().addError('myError', {message: msg});
        }
    }
    

    不过,此解决方案不会阻止表单提交(因为它仅在 UI 中显示错误消息,因此不会触及表单验证逻辑)。这就是为什么Parsley.js favors custom validators

    【讨论】:

      【解决方案2】:

      Parsley 有一些内置方法可以添加自定义错误消息。

      var specificField = $('input.specific-field').parsley();
      # add the error
      window.ParsleyUI.addError(specificField, "myCustomError", 'this is a custom error message');
      # remove the error
      window.ParsleyUI.removeError(specificField, "myCustomError");
      

      更多信息在这里:http://parsleyjs.org/doc/index.html#psly-ui-for-javascript

      编辑This method is now deprecated(感谢@giraff)。

      【讨论】:

      【解决方案3】:
      data-parsley-error-message="my message" 
      

      为我工作 http://parsleyjs.org/doc/index.html#ui-for-javascript 了解更多信息。

      【讨论】:

        【解决方案4】:

        也许是这样的:

        $('input.specific-field').parsley().UI.manageError({error: 'this is a custom error message'});
        

        【讨论】:

        • 或者 $('input.specific-field').parsley().UI.addError({error: 'this is a custom error message'});,我遇到了同样的问题服务器响应后显示自定义错误。 - 我找到了这篇文章:github.com/guillaumepotier/Parsley.js/issues/440
        • 谢谢你!
        • EDIT 似乎只有在该字段之前已失效时才有效
        • 这似乎可行,但我不确定这样做有多“正确”: $('#register-email').parsley().UI.manageError({ error: null }); $('#register-email').parsley().UI.addError({ error: 'Emailadresse bereits vergeben' });
        • 继续这个讨论有效的方法,对我来说是$('...').parsley().UI.manageErrorContainer().addError({err: 'Name cannot be blank'})
        【解决方案5】:

        以上示例似乎适用于 Parsley 2.0 我坚持使用旧版本,但遇到自定义错误以使用以下内容。

        el = $('#my_input').parsley();
        el.manageErrorContainer(); // set up the error list container
        $(el.ulError).empty() // clear any previous errors if you want..
        el.addError({error: 'Hey, mind yerself!'});
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-18
          • 1970-01-01
          • 2015-09-22
          • 2018-12-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多