表单验证帮助

时间:2010-01-26 19:23:35

标签: ajax validation forms

您好我正在尝试使用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;
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

发现我的问题只是我的错误没有被包装在xml父标签中。

我所以我有这样的东西

echo "<fname> </fname>";    
echo "<lname> </lname>";    

它应该是这样的。

echo "<errors>";        
echo "<fname> </fname>";    
echo "<lname> </lname>";
ehco "</errors>"