0

我正在尝试将输入文本与 xml 标记进行比较以进行验证,但我遇到了一些麻烦。我的错误是 call() 函数中的条件(我认为):

if (window.XMLHttpRequest){
     xmlhttp=new XMLHttpRequest();
}
else{
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","userPass.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

function calling(){
    if(document.getElementById("userName").innerHTML==
      (xmlDoc.getElementsByTagName("user")[0].childNodes[0].nodeValue){
             alert("this is valid");
  }
}

<form name="input" action="userPass.xml" method="post">
        username <input type="text" id="userName" onchange="calling()" /><br/><br/>
        password <input type="password" id="password"/><br/><br/>
        <input type="submit" value="Submit" />
</form>

感谢您花时间提供帮助-

4

1 回答 1

0

我认为您在 if 语句的条件中缺少右括号。此外,您可能想要测试输入的 value 属性而不是 innerHTML。您的函数应如下所示:

function calling() {
    if (document.getElementById("userName").value == (xmlDoc.getElementsByTagName("user")[0].childNodes[0].nodeValue){ 
       alert("this is valid");
  }
}

这是我的猜测。如果不知道您遇到了什么样的问题或服务器的响应是什么样的,我无法为您提供任何进一步的帮助。

于 2012-09-13T17:28:27.913 回答