我在JSP中创建了一个注册页面,我想用AJAX验证它。到目前为止,我已经编写了一段代码来创建一个请求对象(AJAX)。
validate.js
window.onload=initPage;
function initPage() {
document.getElementById("username").onblur = checkUsername;
document.getElementById("register").disabled = true;
}
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (tryMS) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (otherMS) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
return request;
}
function checkUsername() {
document.getElementById("username").className="thinking";
request=createRequest();
if(request==null)
alert("Unable To Fetch Request");
else
{
var name=document.getElementById("username").value;
var userName=escape(name);
var url="checkName.jsp?username="+userName;
request.onreadystatechange=showUserNameStatus;
request.open("GET", url, true);
request.send(null);
}
}
我遇到的问题是网址。我不知道如何在checkName.jsp中验证该用户名。实际上,情况是如果userName被验证,那么用户可以注册自己,如果用户名已经注册,那么服务器应该强制用户选择不同的用户名。
function showUserNameStatus() {
if(request.readyState==4)
{
if(request.status==200)
{
if(request.responseText=="okay")
{
document.getElementById("username").className="approved";
document.getElementById("register").disabled = false;
}
else
{
document.getElementById("username").className = "denied";
document.getElementById("username").focus();
document.getElementById("register").disabled = true;
}
}
}
}
答案 0 :(得分:1)
如果我理解,你有一个注册页面jsp,你在其中发布一个AJAX调用来验证用户,如果用户有效,那么你想要继续其他你想要退回说明用户已经现在,选择一个新的。
我建议您不要发布对jsp的调用,而是将其发布到servlet / controller / action类(无论您指的是哪个标准框架),然后将响应返回给ajax调用。