开发者

How to display unique success messages on jquery form validation

hope you can help me on this one, I'm currently using this:

jQuery plugin:validation (Homepage)

I've been reading related questions here, but this one is the closest get. httx://stackoverflow.com/questions/18开发者_JAVA技巧63448/jquery-validation-on-success

from the plugin's documentation httx://docs.jquery.com/Plugins/Validation/validate#toption

success String, Callback

If specified, the error label is displayed to show a valid element. If a String is given, its added as a class to the label. If a Function is given, its called with the label (as a jQuery object) as its only argument. That can be used to add a text like "ok!".

Currently I'm only object given to me is the label, and I can only add text to it. Now what I want is to have unique success message.

For example: username field will have a success message: 'username okay!'

email = 'email seems right'

something along those lines, instead of displaying just one generic success message on all the fields.

Edit:

I only tried this so far:

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

EDIT just want to edit, what I wanted is a way to access the input element and probably access its attribute, to use it to display on the label.text. Something like label.text(element.attr("title"); for example.


The simplest i can think of is as such:

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>

If you want more unique messages, maybe you can store your message somewhere (an additional hidden field, or additional DOM, or use metadata). Make sure it's in a consistent position (so you can traversing it is the same for all fields) and update the label message accordingly?


For whats it worth here is the code I used to display a unique random success message.

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");
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜