Javascript 是否有可能根据需要提出欧芹错误?

Javascript 是否有可能根据需要提出欧芹错误?,javascript,jquery,ajax,parsley.js,Javascript,Jquery,Ajax,Parsley.js,我的应用程序正在使用欧芹进行验证。客户端没有问题。我遇到的问题是让欧芹基于AJAX响应使字段无效。我正在尝试验证SSN。从技术上讲,所有9都是SSN的有效格式,但一旦它进入服务器,我们的系统就会认为它无效。我知道我可以编写一个欧芹规则来检查这一点,但是表单上的任何字段都可能根据服务器上的规则失效(我没有访问这些字段的权限)。我正在寻找一种方法来做这样的事情: $('form').submit(function(e) { e.preventDefault(); if ($(th

我的应用程序正在使用欧芹进行验证。客户端没有问题。我遇到的问题是让欧芹基于AJAX响应使字段无效。我正在尝试验证SSN。从技术上讲,所有9都是SSN的有效格式,但一旦它进入服务器,我们的系统就会认为它无效。我知道我可以编写一个欧芹规则来检查这一点,但是表单上的任何字段都可能根据服务器上的规则失效(我没有访问这些字段的权限)。我正在寻找一种方法来做这样的事情:

$('form').submit(function(e) {
     e.preventDefault();
     if ($(this).parsley().isValid()) {
        $.post("/foo/bar/post",
               $(this).serializeArray(),
                function(response) {
                    if (response.valid) {
                          alert('success!')
                        } else {
                            // this is where I'm lost
                            forceParsleyInvalidation(response.item, response.message)
                        }
                },
                'json');
            }}

响应返回了我需要的所有信息,我只是不确定如何根据从服务器返回的无效信息让欧芹完成它的工作。我试图避免为每个可能失效的元素编写特定的规则。

Parley允许您通过Javascript()添加、更新和删除错误

下面的代码可以工作,但您可能需要根据从服务器获得的内容对其进行调整。出于演示目的,我正在手动设置
响应
值,但没有
$.post

if ($(this).parsley().isValid()) {
    var response = [];
    response.item = 'ssn';
    response.message = 'Well, you need to correct this field';

    var FieldInstance = $('[name=' + response.item + ']').parsley(),
        errorName = response.item + '-custom';

    /**
     * You'll probably need to remove the error first, so the error
     * doesn't show multiple times
     */
    window.ParsleyUI.removeError(FieldInstance, errorName);

    // now display the error
    window.ParsleyUI.addError(FieldInstance, errorName, response.message);
}

看看它是如何工作的。

据我所知,您试图删除一个欧芹错误,对吗?更像是添加一个或触发一个现有错误。在这种特殊情况下,如果用户输入了部分SSN,则会出现“输入有效SSN”消息。我需要基于AJAX响应显示相同的消息。这非常有效。我走对了路。只是缺少字段实例。谢谢你的帮助。