I’m currently using the jquery bassistance validator on my form. I was trying to add a new function which will check (using json) whether a username already exists. I don’t think I’m going the right way about it. Here’s my code:
jQuery.metadata.setType("attr", "validate");
jQuery.validator.addMethod("uniqueUsername", function(value) {
jQuery.getJSON("/index.php?option=com_json&format=raw", { task: "checkUsername", username: value }, function(data) {
var response = eval(data);
if (response == 1) {
//does exist
} else {
//does not exist
};
alert(response);
});
}, "This username is currently unavailable.");
jQuery("#adminForm").validate();
It currently checks immediately and alerts my response before I finish typing my username. It also gives the error regardless on which response is returned from json.
If someone has done this, or knows how to use a json check with bassistance – any help would be appreciated 🙂
That call to the server is asynchronous. So your function returns immediately to the validation plug-in.
Try checking a flag in the validation function (such as isUserNameValid). Then attach the ajax call to the ‘change’ event to do the validation and set the flag to the relevant value. Immediately set the flag to false and then do the ajax call.
HTH