J'ai un événement de modification sur un champ de messagerie qui est censé valider que l'adresse e-mail est unique à l'aide d'un appel ajax. Le problème est qu'il me dit que l'élément ne prend pas en charge la méthode setCustomValidity. Veuillez aider.
$("#tbEmail").change(function (event) {
var obj = new Object();
obj.email = $("#tbEmail").val();
var params = JSON.stringify(obj);
$.ajax
(
{
type: "POST",
url: "./controllers/Consumer.aspx/validateEmail",
data: params,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (result.d != 0) {
var element = $("#tbEmail");
element.setCustomValidity('The email address entered is already registerd.');
alert(element.checkValidity());
alert(element.validationMessage);
}
else {
$("#tbEmail").setCustomValidity("");
};
},
error: function (result) { ProcessError(result) }
}
);
})
setCustomValidity
est l'API DOM et non l'API jQuery. Dans votre code, vous essayez de l'appeler sur l'instance jQuery. Vous devez donc d'abord obtenir l'instance de l'élément DOM, puis appeler l'API.
Il doit également être un navigateur compatible HTML5 et un formulaire.
var element = $("#tbEmail")[0];
element.setCustomValidity('The email address entered is already registerd.');
Une approche plus simple à cela, en ajoutant "[0]":
$("#tbEmail")[0].setCustomValidity("")
utilisez get(0)
.
var element = $("#tbEmail").get(0);
element.setCustomValidity('The email address entered is already registerd.');