我编写了一个PHP脚本,用于检查域是否可以注册。
为了自动化这个过程,我还编写了一个js脚本,它自动向PHP脚本发送AJAX调用,并告诉用户域是否可用,而不提交表单:
$(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是域名的输入字段。
答案 0 :(得分:2)
dn
来自您的代码在哪里?
此外,您的域名功能是否在$(document).ready()
?它实际上并不需要在那里(您也可以考虑为您的类命名)。