0

저는이 커뮤니티에 새로운 사람들이며 지난 48 시간 동안 검색 및 시도 할 때이 답변을 찾고있었습니다.JQuery Autocomplete Sharepoint 2013 및 Infopath, 한 번만 작동

Infopath Designer 2013에서 양식을 만들었습니다. SPD 2013을 사용하고 있으며 달성하려는 작업은 SPServices를 사용하여 Jquery Autocomplete에 바인드 된 몇 가지 필드를 가져 와서 데이터 벡터를 만드는 것입니다.

나는 이것을 작동 시키지만 한 번만 작동합니다. 나는 셰어 내 페이지를 생성 및 포함 INFOPATH는 WebPart, 스크립트 조각과도 콘텐츠 편집기 웹 파트 포함 :

<script type="text/javascript" src="../jquery-ui-1.11.4.custom/external/jquery/jquery.js"></script> 
 
<script type="text/javascript" src="../jquery-ui-1.11.4.custom/jquery-ui.min.js"></script> 
 
<script type="text/javascript" src="../Scripts/jquery.SPServices.js"></script> 
 
<script type="text/javascript" src="../Scripts/OpenCaseFormAutocomplete.js"></script>

내 파일 스크립트 OpenCaseFormAutocomplete :

Sys.Application.add_load(function() { 
 

 
$(document).ready(readyCall); 
 

 
function readyCall(){ 
 

 
    var externalParties1 = []; 
 
    var externalParties2 = []; 
 

 
    $().SPServices({ 
 
    operation: "GetListItems", 
 
    listName: "Autocomplete_Customer", 
 
    CAMLViewFields: "", 
 
    async: false, 
 
    completefunc: function (xData, Status) { 
 
     $(xData.responseXML).SPFilterNode("z:row").each(function() { 
 
     externalParties1.push($(this).attr("ows_Title")); 
 
     }); 
 
    } 
 
    }); 
 

 
    $().SPServices({ 
 
    operation: "GetListItems", 
 
    listName: "Autocomplete_End-User", 
 
    CAMLViewFields: "", 
 
    async: false, 
 
    completefunc: function (xData, Status) { 
 
     $(xData.responseXML).SPFilterNode("z:row").each(function() { 
 
     externalParties2.push($(this).attr("ows_Title")); 
 
     }); 
 
    } 
 
    }); 
 

 
    
 
    $("input[id$='FormControl0_V1_I1_T3']").autocomplete({ 
 
    source: externalParties1, 
 
    minLength: 3 
 
    }); 
 
    
 
    $("input[id$='FormControl0_V1_I1_T4']").autocomplete({ 
 
    source: externalParties2, 
 
    minLength: 3 
 
    }); 
 
\t 
 
\t  
 
} \t 
 

 
}); 
 
/*

내가 거기 어딘가에서 읽었습니다. 다시 게시 문제가 있습니다. 하지만이 코드가 처음으로 작동하지 않는 것 같습니다. 두 번째 폼은 포스트 백 호출을 실행하여 첨부 된 자동 완성을 입력에서 지 웁니다.

이 문제를 해결할 수있는 방법이 있습니까? 예를 들어 바인드 또는 리 바인드 코드 대안을 잃어 버리지 않도록 코드를 삽입해야합니까?

+0

당신이 ("입력 [아이디 $ = 'FormControl0_V1_I1_T3']") autocomplete' 코드 내부의'$를 이동하는 것을 시도했다 :
또한 , 당신은 당신이 Sys.Application.add_load 한 경우이 작업을 수행해야 '$(). SPServices'의'completeFunc'에 마지막 줄이 있습니까? – Max

답변

0

아무 것도하지 않고 양식이 백그라운드에서 자동으로 다시로드되기 때문에 함수를 다시 호출해야합니다. 그래서 함수의 코드 끝에서 setTimeout() 메서드를 사용하여 500 밀리 초 후에 자신을 호출하십시오. .

Sys.Application.add_load(function() { 
ExecuteOrDelayUntilScriptLoaded(YourFunctionName, "sp.js"); 
    });