2009-11-18 2 views
0

도메인을 등록 할 수 있는지 여부를 확인하는 PHP 스크립트를 작성했습니다.JavaScript/jQuery에서 내 첫 번째 객체에 대한 도움말

$(document).ready(function() { 

    function Domain() {  
     this.name = ''; 
     this.dotComRegistered = 1; 
     this.dotNetRegistered = 1; 
     this.dotOrgRegistered = 1; 
    } 

    Domain.prototype.check = function(input) { 
     this.name = input; 

     if (this.name.length >= 3 && this.name.length <= 63) {   
      $.get('check.php', { d : this.name }, function(json) { 

       alert(json); 

       this.dotComRegistered = $.evalJSON(json).com; 
       this.dotNetRegistered = $.evalJSON(json).net; 
       this.dotOrgRegistered = $.evalJSON(json).org; 

      }); 
     } 
    } 

    var domain = new Domain(); 

    var input = '' 

    $('#domain').keyup(function() { 

     input = $('#domain').val(); 
     domain.check(input); 

    }); 

    $('form').submit(function() { 

     input = $('#domain').val(); 
     domain.check(input); 
     return false; 

    }); 

}); 

로 :

프로세스를 자동화하기 위해, 나는 자동으로 AJAX는 PHP 스크립트 호출을 전송하고 양식을 제출하지 않고 도메인을 사용할 여부를 사용자에게 알려주는 JS 스크립트를 작성했습니다 도메인 이름을 나타내는 Domain이라는 객체를 만들었습니다. 객체는 AJAX 요청을 PHP 스크립트 (json을 반환)로 보내는 단 하나의 메소드 (생성자 외)가 있습니다.

문제는 Domain.prototype.check() 메서드가 작동하지 않으며 (경고 창이 표시되지 않음) 문제가 어디 있는지 알 수 없습니다. 내가 AJAX 호출을 메서드 외부에 배치하면 문제가되지 않습니다.

저는 OOP 초보자이므로 Domain 객체를 작성하는 데 잘못된 구문을 사용했을 수도 있습니다. (지금은 JavaScript에서 OOP에 관한 책을 읽었습니다.)

#domain은 도메인 이름의 입력 필드입니다.

답변

2

당신이 방화범이 끌려 들었습니까? 요청이 만들어진 지점에 중단 점을 설정하고 그 지점에서 단계를 건너 뜁니다. dn은 코드에서 어디에서 왔습니까?

또한 도메인 기능이 $(document).ready() 인 특별한 이유가 있습니까? 실제로 거기에있을 필요는 없습니다 (클래스 네임 스페이스도 고려할 수 있습니다).

+0

아. 스크립트에서 "dn"을 "name"으로 다시 쓰고 있었고 거기에 다시 쓰는 것을 잊었습니다. 지금 그것은 작동한다 : –

+0

@ 리차드 - 도와 줘서 기뻐. 추신 어떤 책 읽는거야? –

+0

This one : http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273 –

관련 문제