У меня есть этот код, чтобы добавить список на сайт (SharePoint). Я добавил условие, чтобы предупредить пользователя, если они совершают ошибку, заполняя форму. Когда ошибка в XML я обычно использую.find("errorstring"). Прямо сейчас мой код продолжает предупреждать, что есть ошибка, даже если при просмотре строки ошибки XML нет. Здесь код:
function createList(){
if(!siteUrl){
alert("You must first select a site");
return;
}
var listName = $('#listName');
var listDesc = $('#listDesc');
var listTemp = $('#listTemplate');
var siteLists = $('#web_siteLists');
console.log(siteUrl+" - "+listName+" - "+listDesc+" - "+listTemp);
$().SPServices({
operation:"AddList",
webURL: siteUrl,
listName: listName.val(),
description: listDesc.val(),
templateID: listTemp.find(':selected').val(),
completefunc: function(xData, Status){
if($(xData.responseXML).find('errorstring')){
alert('Please fill form correctly');
return;
}else{
alert(listName+" created.");
siteLists.empty();
RefreshSiteList(siteUrl);
listName.val('');
listDesc.val('');
listTemp.val('default');
}
}
});
}
Ответ XML: http://jsfiddle.net/f6tRw/
Я полагаю, что условие if, возможно, не указано должным образом:
if ($ (xData.responseXML).find('errorstring')) {alert ('Пожалуйста, заполните форму правильно "); return; вернуть; } }
Использовать это:
if($(xData.responseXML).find('errorstring').length > 0){
Пустая коллекция, возвращаемая .find()
когда нет совпадения, является правдой.
if((xData.responseXML).find('errorstring')){...