我对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>
如果找到重复的消息,但没有任何反应,我希望发出警报。
答案 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>