您好我正在尝试使用ajax验证创建一个简单的注册表单。我的表单几乎是我的工作方式...页面上显示一条消息,错误地输入了每个字段的错误。
问题是所有错误消息都出现在一个div中,我希望每个字段都有自己的div,只包含自己的错误。
我想我需要将我的错误消息包装在xml中并使用类似的东西 -
document.getElementById("feedback1").innerHTML= xmlDoc.getElementsByTagName("lname")[0].childNodes[0].nodeValue;
- 但似乎无法使其正常工作
有谁知道我应该如何修改我的代码来执行此操作?
以下是我的来源,其中包含我目前正在使用的3个文件 - http://www.cultivatedesigns.ca/Uploads/ajax-validation.zip
这是我的ajax页面的代码。
var xmlHttp;
function regForm(thisform) {
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null) {
alert ("Browser does not support HTTP Request");
return;
}
var formdata = "";
formdata = "lname=" + thisform.elements['lname'].value + "&fname=" + thisform.elements['fname'].value + "&email=" + thisform.elements['email'].value + "&username=" + thisform.elements['username'].value + "&pass=" + thisform.elements['pass'].value + "&pass2=" + thisform.elements['pass2'].value;
xmlHttp.onreadystatechange=formSubmitted;
xmlHttp.open("POST", "adduser.php",true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", formdata.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(formdata);
return false;
}
function formSubmitted() {
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
xmlDoc=xmlHttp.responseXML;
document.getElementById("feedback").innerHTML = xmlHttp.responseText;
//document.getElementById("feedback1").innerHTML= xmlDoc.getElementsByTagName("lname")[0].childNodes[0].nodeValue;
}
}
function GetXmlHttpObject() {
xmlHttp=null;
try
{
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
感谢您的帮助!
答案 0 :(得分:0)
发现我的问题只是我的错误没有被包装在xml父标签中。
我所以我有这样的东西
echo "<fname> </fname>";
echo "<lname> </lname>";
它应该是这样的。
echo "<errors>";
echo "<fname> </fname>";
echo "<lname> </lname>";
ehco "</errors>"