2015-10-31 23 views
7

Tôi có sự kiện thay đổi trên trường email được cho là xác thực rằng địa chỉ email là duy nhất sử dụng cuộc gọi ajax. Vấn đề là nó nói với tôi rằng phần tử không hỗ trợ phương thức setCustomValidity. Hãy giúp tôi.element.setCustomValidity dường như không hoạt động

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

}) 

Trả lời

5

setCustomValidity là API DOM không phải API jQuery. Ngoài ra, nó cần phải là trình duyệt tương thích HTML5 và một biểu mẫu.

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

Đó làm việc! Cảm ơn bạn rất nhiều vinayakj. Tôi đã chơi với điều đó trong nhiều ngày và không nghĩ về điều đó. Làm cách nào để tôi chấp nhận câu trả lời? Tôi mới vào stackoverflow. – pachyderm94

0

sử dụng get(0).

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

Một cách tiếp cận đơn giản này, thêm "[0]":

$("#tbEmail")[0].setCustomValidity("") 
Các vấn đề liên quan