2016-12-27 1 views
0

내 목표는 동일한 클래스 이름을 가진 동일한 입력에 대해 여러 페이지/뷰에서 동일한 컨텍스트의 자동 완성 기능을 수행하는 것입니다 (예 : 많은 페이지에서 자동 완성되는 클라이언트 이름). 보기 만들기 및 편집 등). 필요한 경우여러 페이지에서 같은 함수 이름을 사용하는 자바 스크립트

나는 각 페이지에 jQuery의 autocomplete(), 나는 자동 있도록 Shared_Layout.cshtml \

보기에 내 프로젝트의

페이지를 작성했다 호출 할 필요가 있기 때문에 완전한 기능을 사용할 것이다. 다음과 같이 내가 _Layout.cshtml에 쓴 코드는 다음과 같습니다

<script> 
    $(document).ready(function() { 
     //common 
     $('.form-control.salescode').autocomplete({ 
       minLength: 4, 
       source: '@Url.Action("GetAccountManager", "AccountManager")', 
       select: callBackSalesCodeLookUp 
     }); 
    }); 
</script> 

그런 요구하는 자동 완성 기능이 코드가 호출 한 모든보기 (편집을 만들거나) :

그러나
<script> 
    function callBackSalesCodeLookUp(event, ui) 
    { 
     event.preventDefault(); 
     var selectedArr = ui.item.value.split("|"); 
     var accountManagerID = selectedArr[0]; 
     var accountManagerName = selectedArr[1]; 

     $('.form-control.salescode').val(accountManagerID); 
    } 
</script> 

, 로 크롬에서,

function callBackSalesCodeLookUp(event, ui) 
    { 
     event.preventDefault(); 
     var selectedArr = ui.item.value.split("|"); 
     var accountManagerID = selectedArr[0]; 
     var accountManagerName = selectedArr[1]; 

     $('.form-control.salescode').val(accountManagerID); 
    } 

내가 점점 오전 오류입니다 :

012,351,641 내가 프로젝트를 실행했을 때, 나는대로 예상되는 다음 코드를 가지고 있지 않은 페이지에 대한 오류를 얻고있다

jquery-3.1.1.js:3855 Uncaught ReferenceError: callBackSalesCodeLookUp is not defined at HTMLDocument. (Login?ReturnUrl=%2FAccountOpeningRegister%2FCreate:393) at mightThrow (jquery-3.1.1.js:3570) at process (jquery-3.1.1.js:3638)

내가 코드를 적게하고 싶고, 이것이 내가 이런 식으로 만든 이유입니다. 나는 이것을 코딩하는 더 좋은 방법이 있는지 알고 기뻐할 것입니다.

감사합니다.

답변

1

함수를 호출하기 전에 창에 함수가 있는지 확인하십시오.

<script> 
    if (typeof callBackSalesCodeLookUp == 'function') { 
     $(document).ready(function() { 
       //common 
       $('.form-control.salescode').autocomplete({ 
        minLength: 4, 
        source: '@Url.Action("GetAccountManager", "AccountManager")', 
        select: callBackSalesCodeLookUp 
       }); 
      }); 
    } 
</script> 
+1

그레이트 !!!! 그것은 작동합니다! – hiFI

관련 문제