15

我正在使用 jQuery 验证插件来验证我的表单。它可以工作(将错误消息放在无效输入旁边,这搞砸了我的设计),但我想为每个输入字段指定错误容器。我找到了errorLabelContainer,但这会将所有错误都放在一个容器中。

假设我有 2 个输入,一个带有 id name,一个带有firstname. 并且我们还假设我有 2 个错误跨度,带有 idserrorNameerrorFirstname. 我如何告诉 jQuery 将验证错误写入name带有 id 的 span 中errorName

这是我当前的 jQuery:

$("#form").validate({
    errorLabelContainer: "#errors",
        rules: {
            name: {
                required: true
            },
            firstname: {
                required: true
            }
        },
        messages: {
            name: {
                required: "Enter name"
            },
            firstname: {
                required: "Enter firstname"
            }
        }
    })
4

1 回答 1

16

我认为该errorPlacement选项适合您的需求:

自定义创建的错误标签的位置。第一个参数:作为 jQuery 对象创建的错误标签。第二个参数:作为 jQuery 对象的无效元素。

您可以根据无效元素确定要放置错误的元素:

$("#form").validate({
    rules: {
        name: {
            required: true
        },
        firstname: {
            required: true
        }
    },
    messages: {
        name: {
            required: "Enter name"
        },
        firstname: {
            required: "Enter firstname"
        }
    },
    errorPlacement: function ($error, $element) {
        var name = $element.attr("name");

        $("#error" + name).append($error);
    }
});

示例:http: //jsfiddle.net/R3aEQ/

于 2012-05-24T02:11:46.087 回答