如何在jquery表单验证上显示唯一的成功消息

时间:2010-05-14 03:31:42

标签: jquery validation jquery-plugins jquery-validate

希望你能帮我解决这个问题,我现在正在使用它:

jQuery plugin:validation (Homepage)

我一直在这里阅读相关问题,但这是最接近的问题。 httx://stackoverflow.com/questions/1863448/jquery-validation-on-success

来自插件的文档 httx://docs.jquery.com/Plugins/Validation/validate#toption

  

成功 字符串,回拨
  如果指定,则显示错误标签以显示有效元素。如果给出了String,则将其作为类添加到标签中。如果给出了一个Function,则使用标签(作为jQuery对象)作为其唯一参数进行调用。这可以用来添加像“ok!”这样的文本。

目前我只是给我的对象是标签,我只能添加文字。现在我想要的是拥有独特的成功信息。

例如: username字段将有一条成功消息:'username okay!'
email ='email似乎正确'

沿着这些方向的东西,而不是在所有字段上只显示一条通用成功消息。

编辑:

到目前为止我只尝试过这个:

success: function(label) {
    label.text("Ok!").removeClass("error").addClass("success");
    },

EDIT 只是想编辑,我想要的是一种访问输入元素并可能访问其属性的方法,用它来显示在label.text上。像label.text(element.attr(“title”);例如。

2 个答案:

答案 0 :(得分:3)

我能想到的最简单的就是这样:

jQuery(function($) {
    $('form').validate({
        success: function(label) {
            var name = label.attr('for');
            label.text(name+ ' is ok!');
        }
    });
});

<form action="" method="post">
    <input name="username" class="required" type="text" />
    <input type="submit" />
</form>

如果您想要更多独特的消息,也许您可​​以将消息存储在某个地方(另外的隐藏字段,或其他DOM,或使用元数据)。确保它处于一致的位置(因此您可以遍历它对所有字段都相同)并相应地更新标签消息?

答案 1 :(得分:0)

对于什么,这里值得的是我用来显示唯一随机成功消息的代码。

success: function(label) {
        var messages = new Array(
            "Looks good!",
            "You got it!",
            "Ok!"
        );

        var num = Math.floor(Math.random()*3); 

        label.text(messages[num]).addClass("success");
    }