Если заявление дает неверные результаты.

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 ('Пожалуйста, заполните форму правильно "); return; вернуть; } }

  • 0
    попробовать без $? if((xData.responseXML).find('errorstring')){...
Теги:
if-statement

1 ответ

2
Лучший ответ

Использовать это:

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

Пустая коллекция, возвращаемая .find() когда нет совпадения, является правдой.

  • 0
    Так что, если есть длина 0, это возвращает как ложь?
  • 0
    Да. Смотрите sitepoint.com/javascript-truthy-falsy
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню