I've created a method for jquery's validator plugin, that works like the remote rule. The difference is that I'd like to display a dynamic error message (based on the ajax response).
jQuery.validator.addMethod("duplicate", function(value, element, params) {
var object_settings = this.settings;
params.data[$(element).attr("name")] = value;
$.post(params.url, params.data, function(response) {
if (response == 'true'){ return true; }
else {
object_settings.messages[element.name] = response;
return false;
}
}, 'text');
}, '');
It works...sort of....it sets the message, but doesn't display it initially (if you validate the field a second time, the message is displayed).
Any suggestions?
(maybe the remote rule offers this functionality...I couldn't find anything in the documentation)
Was looking for solution to this as well, and found this...
In the original example, if you change this line:
To this:
This works for me. I found it here: http://blogs.teamb.com/craigstuntz/2009/01/15/37923/
I have followed the process mentioned in the site http://blogs.teamb.com/craigstuntz/2009/01/15/37923/#comment-125774 and succeeded.
You have to call the method with the dynamic message, so that it will display that message. For example
Here's the solution....needed to call the showErrors function of the object:
Taken from "remote" in jquery.validate.js (lines 917 - 919)
this worked for me
make sure to replace "methodName" with your method name in this case "duplicate" in both places(addMethod function 1st arg and in the addMethod function body $.validator.messages["methodName"])