我正在尝试解析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>
答案 0 :(得分: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());
答案 1 :(得分: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');
}
}
});
});