0

login.cfm이라는 ColdFusion Model Glue 뷰가 있습니다.Javascript 코드는 ColdFusion 모델 접착제보기에 어디에 넣어야합니까?

<form id="loginForm" action="#event.linkTo("user.login")#" method="POST"> 
    E-mail: <input id="emailField" type="text" name="email"> 
    Password: <input id="passwordField" type="text" name="password"> 
    <input type="submit" value="Login"> 
</form> 

가 지금은 사용자가 로그인 버튼을 클릭 할 때 몇 가지 자바 스크립트 유효성 검사에 추가 할 : 그것에서 나는 양식을 가지고있다. jQuery에서 이와 비슷한 것 :

<script type="text/javascript"> 
    $(function() { 
     $('#loginForm').submit(function() { 
      // check that emailField is not empty and is a valid e-mail 
      // check that passwordField is not empty 
      // if validation fails, add in DOM elements to show error messages 
     }); 
    }); 
</script> 

어디에서이 자바 스크립트 코드를 추가해야합니까? 나는 그것을 login.cfm보기에 직접 집어 넣을 수 있습니까? 아니면 이것을 처리하는 더 좋은 방법이 있습니까? 가급적이면 모든 자바 스크립트 코드를 내 견해의 가장 밑바닥에 붙여야합니다.

답변

0

여기에는 상당히 다른 전략이 있습니다. 가장 쉬운 방법은 뷰 전용 스크립트를 단일 .js 파일에 넣고 <body> 태그를 닫기 직전에 <script src="path"></script> 태그를 통해 포함시키는 것입니다.

require.js와 같은 라이브러리를 보면 스크립트 파일과 그 종속성을 비동기 적으로로드 할 수 있습니다.

+0

로그인 양식이 없어도 중단되지 않습니까? –

+1

로그인 폼이 없다면 jQuery 예제는 아무 것도하지 않을 것입니다. (필요한 경우'if ($ ('# loginForm'). length> 0)'을 수행하여 이것을 확인하십시오.) –

+1

+1 to Peter. jQuery에 대한 좋은 점 중 하나는 지정된 요소를 찾지 못한다는 것입니다. 단지 그 일에 대해 어깨를 으 sh하고 계속합니다. 오류가 발생하지 않습니다. – charliegriefer

0

보기 파일에 그대로 둘 수 있습니다.

은 비록 > 블록 사방에 < 스크립트를 갖는 큰 팬이 아니다, 그래서 일반적으로 JS의 확인이 모든 블록을 만들기 위해 <cfsavecontent> 및 < cfhtmlhead를 >를 사용합니다 < 머리에 바람 >

login.cfm 파일에서이 작업을 올바르게 수행 할 수 있습니다.

<cfsavecontent variable="js"> 
<script type="text/javascript"> 
    $(function() { 
     $('#loginForm').submit(function() { 
      // check that emailField is not empty and is a valid e-mail 
      // check that passwordField is not empty 
      // if validation fails, add in DOM elements to show error messages 
     }); 
    }); 
</script> 
</cfsavecontent> 
<cfhtmlhead text="#js#" /> 
관련 문제