Как правильно получить значения в JQuery? - PullRequest
0 голосов
/ 12 июня 2019

Я новичок в Javascript и jQuery. Для проекта я хочу проверить, содержит ли список Sharepoint какие-либо дубликаты, без использования встроенной функции, чтобы впоследствии расширить его, чтобы сравнить более одного столбца. В моем текущем коде я извлекаю значение поля поиска и пытаюсь сопоставить его со всеми моими результатами в моей таблице. В то время как я правильно получил значение поиска, моя совпадающая переменная (x) показывает несколько «неопределенных» записей. При ручном вводе URL-адреса в XML-документе отображаются все необходимые значения в моем списке.

Как я могу правильно получить каждое из моих текущих значений списка и передать его в переменную?

<script src="https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js" type="text/javascript"></script>
<!-- reference jQuery from Miscrosoft CDN -->
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script><script type="text/javascript">

  function PreSaveItem() {
    if (CheckExists()) {
      alert('KU in USE');
      return false;
    } else {
      return true;
    }
  }

  function CheckExists() {
    var gnr= $("select[title='Test']").find("option:selected").text();
    alert(gnr) 
    var listUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('My List')/items?$select=*,Test/Test&$expand=Test"; 
    var c = false;
    $.ajax({
      url: listUrl,
      type: "GET",
      async: false,
      headers: { "Accept": "application/json;odata=verbose" },
      success: function(data){
        $.each(data.d.results, function(i, item) {
          var x = item["Test"].text ; 
          alert(x);
          if (x!= undefined) {
            if (gnr === x) {
            c = true;
            }
          }
        }); // each
      },
      error: function(error) {
        alert(JSON.stringify(error));
      }
    });
    return c;
  }

</script>​​​

Я ожидаю выдачи предупреждения, если дубликат найден, но ничего не происходит.

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Следующий пример для справки.

1.Создать пользовательский список «Мой список».

2.Добавить поле поиска «Тест», в столбце искать значения из другого пользовательского списка со столбцом «Идентификатор».

3.Добавьте приведенный ниже код в веб-часть редактора сценариев на новой странице формы в «Моем списке».

<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
function PreSaveItem() {
    if (CheckExists()) {
        alert('KU in USE');
        return false;
    } else {
        return true;
    }
}
function CheckExists() {
    var gnr= $("select[title='Test']").find("option:selected").text();
    //alert(gnr) 
    var listUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('My List')/Items?$select=Test/Id&$filter=Test/Id eq "+gnr+"&$expand=Test/Id"; 
    var c = false;
    $.ajax({
        url: listUrl,
        type: "GET",
        async: false,
        headers: { "Accept": "application/json;odata=verbose" },
        success: function(data){
            if(data.d.results.length>0){
                c=true;
            }        
        },
        error: function(error) {
            alert(JSON.stringify(error));
        }
    });
    return c;
}
</script>

enter image description here

0 голосов
/ 12 июня 2019

Если вы хотите извлечь свойство / столбец с именем «Test» из списка «Test».

Вместо использования:

var x = item["Test"].text

Попробуйте использовать:

var x = item.Test.Test
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...