Php ajax数据源上的jquery getElementById
我在javascript中得到了一个函数,该函数首先检查用户名是否为所需长度,然后将用户名发送到页面进行测试。如果测试成功,则会出现错误Php ajax数据源上的jquery getElementById,php,jquery,ajax,xmlhttprequest,clean-urls,Php,Jquery,Ajax,Xmlhttprequest,Clean Urls,我在javascript中得到了一个函数,该函数首先检查用户名是否为所需长度,然后将用户名发送到页面进行测试。如果测试成功,则会出现错误 true 其他的 false function(data){ alert( "Data Loaded: " + $('#username', data).html() ); }); 我一直收到一个错误,返回数据上不存在getElementById function checkuser(user, wd,id, sub)
true
其他的
false
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
我一直收到一个错误,返回数据上不存在getElementById
function checkuser(user, wd,id, sub)
{
if(user.length < 7)
{
document.getElementById(id).innerHTML = "Your username is too short. It must be longer than 6 charaters";
document.getElementById(sub).disabled = true;
return false;
} else {
$.post(wd + "register/checkuser/" + user,
function(data){
alert("Data Loaded: " + data.getElementById('username').innerHTML;
});
}
}
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
功能检查用户(用户、wd、id、sub)
{
如果(用户长度<7)
{
document.getElementById(id).innerHTML=“您的用户名太短,必须超过6个字符”;
document.getElementById(sub.disabled=true;
返回false;
}否则{
$.post(wd+“注册/检查用户/”+用户,
功能(数据){
警报(“数据加载:”+Data.getElementById('username').innerHTML;
});
}
}
数据返回值是一个字符串,而不是DOMDocument-因此它没有getElementById成员函数
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
更好的办法是让您的测试页面返回JSON,并对其进行解析
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
如果无法更改执行测试/返回的页面,则需要找到另一种方法来解析符合您目的的返回字符串。您必须执行以下操作:
function checkuser(user, wd, id, sub) {
if(user.length < 7) {
$("#"+id).html("Your username is too short. It must be longer than 6 characters");
$("#"+sub).attr("disabled", true);
return false;
}
else {
$.post(
wd + "register/checkuser/" + user,
function(data){
alert("Data Loaded: " + $(data).find("#username").html());
}
);
}
}
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
功能检查用户(用户、wd、id、sub){
如果(用户长度<7){
$(“#”+id).html(“您的用户名太短,必须超过6个字符”);
$(“#”+sub).attr(“禁用”,真);
返回false;
}
否则{
美元邮政(
wd+“注册/检查用户/”+用户,
功能(数据){
警报(“加载的数据:+$(数据).find(#username”).html();
}
);
}
}
试试这个:
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
或者,这取决于返回的HTML的结构:
function(data){
alert( "Data Loaded: " + $('#username', data).html() );
});
function(data){
alert( "Data Loaded: " + $(data).filter('#username').html() );
});
您的data.getElementById()是否出现错误?将,
data.getElementById('username').innerHTML;
更改为document.getElementById('username')).innerHTML=data;
Read@Amber's comment!data
并不总是一个字符串,是吗?这取决于响应的类型以及您是否设置了dataType
:如果响应是HTML,那么它将是一个字符串,而JSON绝对是这种响应的方式。但无论哪种方式,它都是字符串或JSON数据,但我仍然喜欢sn不在DOM中,也不会有getElementById()&Marc:我现在不能方便地尝试它,但是如果您检索XML(或设置数据类型
),您不会得到包含XML文档的DOMDocument吗?(尝试使用JSBin失败,但这似乎是文档建议的。)同样,这是一个侧重点,完全同意Amber的观点,JSON是最好的方式。