簡體   English   中英

幫助我在JavaScript / jQuery中創建第一個對象

[英]Help with my first own object in JavaScript/jQuery

我已經編寫了一個PHP腳本,用於檢查域是否可用於注冊。

為了使過程自動化,我還編寫了一個js腳本,該腳本自動將AJAX調用發送到PHP腳本,並告訴用戶該域是否可用,而無需提交表單:

$(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;

    });

});

如您所見,我創建了一個名為Domain的對象,該對象代表一個域名。 該對象只有一個方法(除構造方法外),可將AJAX請求發送到PHP腳本(返回json)。

問題是Domain.prototype.check()方法不起作用(我沒有警報窗口),也不知道問題出在哪里。 當我將AJAX調用放在該方法之外時,它可以工作,所以這不是問題。

我是OOP初學者,所以也許我使用了一些錯誤的語法來編寫Domain對象(我​​正在讀John Resig的一本書,內容涉及JavaScript中的OOP)。

#domain是域名的輸入字段。

您是否已逐步熟悉Firebug? 在發出請求的位置設置一個斷點,並從該點開始逐步執​​行。 dn在您的代碼中來自哪里?

另外,是否有特定原因導致您的Domain函數位於$(document).ready() 它實際上並不需要在那里(您也可以考慮對類進行命名)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM