Parsley - 当字段为空时在必需消息上使用错误消息

Parsley - Error message being used over Required Message when field is empty

我已经为 parsley 添加了一个自定义验证器,它按预期工作,但我遇到的唯一问题是当字段留空时 data-parsley-error-messagedata-parsley-required-message 上使用。

如何避免这种情况,以便在验证失败时使用错误消息,并在字段为空时显示所需的消息。

当前代码:

<input class="form-control" id="FirstName" name="FirstName" maxlength="20" data-parsley-required-message="Your first name was missing." data-parsley-validate-non-ascii="" data-parsley-error-message="Invalid Character Entered" data-parsley-trigger="blur" required="" data-parsley-id="3137" type="text">

 window.ParsleyValidator.addValidator('validateNonAscii', function (value) {
        return Validate(value);
    });

data-parsley-error-message 将始终具有优先权。请改用 data-parsley-validate-non-ascii-message

根据 Marc-André Lafortune 的建议,我通过实施自定义验证错误消息设法找到了自己的答案:

我将 HTML 输入更新为以下内容:

<input type="text" class="form-control" id="FirstName" name="FirstName" maxlength="20" data-parsley-required-message="Your first name was missing." data-parsley-validate-non-ascii="" data-parsley-validate-non-ascii-message="Invalid Character Entered" data-parsley-trigger="blur" required="" data-parsley-id="5021">

然后使用事件侦听器,我能够将错误消息从输入添加到 Parsley;现在在输入无效字符时显示验证错误,在字段为空时显示所需消息。

$.listen('parsley:field:error', function (fieldInstance) {
    var validateNonAsciiMessage = fieldInstance.$element.data('parsley-validate-non-ascii-message');

    if (validateNonAsciiMessage !== undefined) {
        window.ParsleyValidator.addMessage('en', 'validateNonAscii', validateNonAsciiMessage);
    }
});

window.ParsleyValidator.addValidator('validateNonAscii', function (value) {
    return Validate(value);
});