2015-10-31 18 views
7

Ich habe ein Änderungsereignis in einem E-Mail-Feld, das validieren soll, dass die E-Mail-Adresse mit einem Ajax-Aufruf eindeutig ist. Das Problem ist, dass es mir sagt, dass das Element die Methode setCustomValidity nicht unterstützt. Bitte Hilfe.element.setCustomValidity scheint nicht zu funktionieren

$("#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) } 
     } 
    ); 

}) 

Antwort

5

setCustomValidity ist DOM API nicht jQuery API. Außerdem muss es ein HTML5-kompatibler Browser und ein Formular sein.

var element = $("#tbEmail")[0]; 
element.setCustomValidity('The email address entered is already registerd.'); 
+0

Das hat geklappt! Vielen Dank Vinayakj. Damit hätte ich tagelang gespielt und nicht daran gedacht. Wie akzeptiere ich eine Antwort? Ich bin neu in stackoverflow. – pachyderm94

0

Verwendung get(0).

var element = $("#tbEmail").get(0); 
    element.setCustomValidity('The email address entered is already registerd.'); 
0

Ein einfacher Ansatz dazu, das Hinzufügen "[0]":

$("#tbEmail")[0].setCustomValidity("") 
Verwandte Themen