0

我有此代码可以将列表添加到站点 (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('请正确填写表格'); 返回; }

4

1 回答 1

2

用这个:

if($(xData.responseXML).find('errorstring').length > 0){

.find()没有匹配时返回的空集合是真实的。

于 2013-10-25T20:03:22.590 回答