1

我正在尝试解析 xml 并将其文本与输入字段进行比较,但它在这里不起作用是我尝试过的代码..

 $('#finish').click(function() {
 var email = document.getElementById('email').value
    $.ajax({
        type: "GET",
        url: "test.xml",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('child[name="Email"]').each(function(){
                var i = $(this).attr('text');
                if(i == email)
                alert('email already registered');
                else{
                activity.SubmitData();
                }

            });
        }
    });
});

html

<input type="text" name="email" id="email" placeholder="Your Email..">
<button id="finish" >Register</button>

XML

<reg>
  <user>
    <Name> myName</Name>
    <Email> myEmail </Email>
    <Date> 22/12/2013 </Date>
  </user>
</reg>
4

2 回答 2

0

尝试

$('#finish').click(function () {
    var email = document.getElementById('email').value
    $.ajax({
        type: "GET",
        url: "test.xml",
        dataType: "xml",
        success: function (xml) {
            //check if any Email element has the entered email as its value
            var valid = $(xml).find('Email').filter(function () {
                return $.trim($(this).text()) == email
            }).length == 0;
            //if valid submit the data
            if (valid) {
                activity.SubmitData();
            } else {
                alert('email already registered');
            }
        }
    });
});
于 2014-04-01T06:02:24.457 回答
0

您需要==用于比较:

if(i == email)

此外,您的输入没有text属性,因此var i = $(this).attr('text');无法按预期工作。您可能想要获取它的类型:

var i = $(this).attr('type');

或者,如果您想获取其文本,请使用.text()

var i = $(this).text();

如果要从文本中删除尾随空格,则可以使用$.trim()

var i = $.trim($(this).text());
于 2014-04-01T05:59:07.203 回答