jQuery验证错误放置

时间:2011-02-22 12:06:52

标签: jquery validation placement

不幸的是,我在寻找这个问题的解决方案方面没有取得多大成功,所以这里又一次......

基本上,我正在尝试使用我的错误消息来定位和替换现有input [label]标记的内容,而不是依赖于validate插件的默认行为,即。在我输入字段下方的DOM上添加另一个[label]。

这是形式,没什么特别的!

<form id="loginForm" action="testing.htm">

<label for="username">Username</label>
    <input id="username" name="username" type="text">

<label for="password">Password</label>
    <input id="password" name="password" type="text">

<label for="clientid">Client ID</label>
    <input id="clientID" name="clientID" type="text">

<input id="submitButton" name="submitButton" type="submit" value="Login">

......这是脚本

<script type="text/javascript">

$("#loginForm").validate({

    rules: {
        username: "required",
        password: {
            required: true,
            digits: true
        },

        clientID: "required"
        },

    messages: {
        username: "Please enter your username",
        password: "Please enter your password",
        clientID: "Please enter a client ID"            
    },

    errorPlacement: function(error, element) {},        

});

正如你所看到的,我已经将errorPlacement代码留空了,希望有人可以帮助我填补空白。我试过以下但没有成功。

errorPlacement: function(error, element) {
    error.insertBefore( element );
}

对此的任何建议都会很棒!我开始拔头发了; o(

欢呼声 Decbrad

1 个答案:

答案 0 :(得分:1)

您应该可以在回调中执行类似的操作。

$('label[for="' + element.attr("id") + '"]').text(error.text());

我对此方法提出质疑,因为一旦错误得到解决,我认为你的标签就会消失。您可以使用我提供的方法查找其他标签并将其隐藏,但您还需要覆盖成功回调以再次显示原始标签。