使用javascript检查输入是否对xml文件是唯一的

时间:2014-10-19 15:04:03

标签: javascript xml

我有一个允许用户注册电子邮件的html页面,它将其存储在XML文件中。

我想知道下面我的脚本可能出现的问题。但它似乎并没有起作用,因为我的测试警报在它应该的时候不会消失。它应该将所有电子邮件元素抓取到一个数组中,然后循环遍历数组检查用户输入。如果找到匹配,则应返回false并提醒我。

    var Email  = document.getElementById("Email").value;
    var result = true;

    var request = new XMLHttpRequest();
        request.open("GET", "user.xml", false);
        request.send();
        var xml = request.responseXML;
        var xmlEmails = xml.getElementsByTagName("email");
        for(var i = 0; i < xmlEmails.length; i++) {
            var xmlEmail = xmlEmails[i];
            for(var j = 0; j < email.length; j++) {
                if (email == email[j].childNodes[j].nodeValue)
                        {   result = false;
                            alert("testing");

            }
        }

这里是xml文件数据

    <?xml version="1.0"?>
    <customers>
    <customer>
        <id>0</id>
        <firstname>John</firstname>
        <lastname>Doe</lastname>
        <email>JohnDoe@mia.com</email>
        <password>insecure</password>
    </customer>
    <customer>
        <id>1</id>
        <firstname>Jane</firstname>
        <lastname>Doe</lastname>
        <email>JaneDoe@mia.com</email>
        <password>forgetful</password>
    </customer>
    </customers>

谢谢:)。

1 个答案:

答案 0 :(得分:0)

我认为您错误地使用了两个不同的变量:电子邮件和电子邮件。无论如何都不使用xmlEmail。你也错过了一个}。它应该是这样的:

var Email  = document.getElementById("Email").value;
var result = true;

var request = new XMLHttpRequest();
request.open("GET", "user.xml", false);
request.send();
var xml = request.responseXML;
var xmlEmails = xml.getElementsByTagName("email");
for(var i = 0; i < xmlEmails.length; i++) {
   var xmlEmail = xmlEmails[i].childNodes[0].nodeValue;
   if (xmlEmail == Email) {
      result = false;
      alert("testing");
   }
}