如何在JQuery中正确检索值?

时间:2019-06-12 17:04:50

标签: javascript jquery ajax sharepoint

我对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 :(得分:0)

如果要从列表“测试”中检索名为“测试”的属性/列。

代替使用:

var x = item["Test"].text

尝试使用:

var x = item.Test.Test

答案 1 :(得分:0)

以下示例供您参考。

1。创建自定义列表“我的列表”。

2。添加查找字段“ Test”,从另一个自定义列表的列“ ID”中查找值。

3。在“我的列表”的新表单页面的脚本编辑器Web部件中添加以下代码。

<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