Good day,
I have the List. The List has checkbox field "DocOrg". The user must select checkbox "DocOrg" value and the script must send ajax query to another list, find another list element by "DocOrg" value and get its field "OrgIndex" value. Then "OrgIndex" value I must add to document "Title" field value. The ajax request works fine. But I can't get return value from getDocOrganization() function. The var orgIndex is equal "". I try to change form Title field value inside the getDocOrganization() function, but this change doesn't save after document saving. How can I get "OrgIndex" value by ajax request, add it to document "Title" field and save this field value in document? When I use "alert" it works fine, but if I don't use alert, it doesn't work.
My script
<script type="text/javascript" src="/SiteAssets/Script/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="/SiteAssets/Script/jquery.SPServices.min.js"></script>
<script type="text/javascript">
var checkedAttr = [];
var autoDocNum="";
$(document).ready(function () {
$("input:checkbox[id^='DocOrg']").change(function () {
checkedAttr=[];
$("input:checkbox[id^='DocOrg']:checked").each(function(){
checkedAttr.push($(this).next().text());
});
});
});
function PreSaveItem(){
var err = false;
var docType="";
if (checkedAttr.length>1) {
autoDocNum=$("input[id^='Title']").val() + " " + "is";
}
else if (checkedAttr.length==1) {
autoDocNum=getDocOrganization();
setTimeout(1000);
// alert(autoDocNum);
//$("input[id^='Title']").val(autoDocNum);
}
return !(err)
}
function getDocOrganization(){
var docOrg = checkedAttr[0]; //get the label for this checkbox
// alert("checked : " + docOrg);
var orgIndex="";
// alert('docTitle ' +$("input[id^='Title']").val());
var url = '/ISM';
$.ajax({
url: url + "/_api/web/lists('1E685303-0E60-435B-A8EE-EBB834165C06')/items?$filter=Title eq '" + encodeURIComponent(docOrg) + "'",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
if (data.d.results.length!=0){
orgIndex = data.d.results[0].OrgIndex;
$("input[id^='Title']").val($("input[id^='Title']").val() + " " + orgIndex);
//alert($("input[id^='Title']").val());
}
},
error: function (error) {
console.log(JSON.stringify(error));
}
});
//alert ('orgIndex ' +orgIndex);
console.log('orgIndex = ' +orgIndex);
return orgIndex.toString();
}
</script>