나는 간단한 자바 스크립트 파일을 생성 및 웹 응용 프로그램 /의 JS 내부를 배치하고 Grails에서 외부 자바 스크립트 파일을 재사용하는 방법은 무엇입니까?
그것은 다음과 같은 코드가 포함되어
util.js 이름 :$(document).ready(function() {
// adds a space after 3rd digit/letter of postal code
$('#postalCode').keyup(function() {
var postalCodeValue = this.value;
var postalCodeLength = postalCodeValue.length;
if(postalCodeLength == 3){
this.value = postalCodeValue + " ";
}
});
});
그것은 아주 간단한 코드입니다, 그리고 난에 표시를 부착 main.gsp 그래서 매번 가져 오기를 계속할 필요가 없습니다.
...
<div class="footer" role="contentinfo"></div>
<div id="spinner" class="spinner" style="display:none;">
<g:message code="spinner.alt" default="Loading…" /></div>
<g:javascript library="application" />
<g:javascript library="util" />
<r:layoutResources />
...
이제 그것을 (Form1에 및 형식 2)를 사용하여 두 가지 형태가있다. 그들은 다른 gsp 파일에 속합니다. Form1과 Form2의 ID가 모두 "#postalCode"인 텍스트 필드가 있습니다.
<g:textField name="postalCode" maxlength="7" id="postalCode" pattern="([A-Z]|[a-z])[0-9]([A-Z]|[a-z]) [0-9]([A-Z]|[a-z])[0-9]" required="" value="${fosterHomeInstance?.postalCode}"/>
것은 util.js가 Form1을 작동,하지만 이상한 것은, 그것이 Form2를 작동하지 않습니다이다. 그들은 똑같은 ID를 가지고 있으며, 이론적으로 main.gsp 안에 코드 <g:javascript library="util" />
을 넣었습니다. 제대로 작동해야합니까? 음 .. 꽤 이상 하네. 소스 코드를 보려면 Form2를 마우스 오른쪽 버튼으로 클릭하십시오. util.js가 확실히 있습니다. 나는 그것이 효과가 없어야하는 이유를 정말로 생각할 수 없다. 같은 코드를 다시 쓰고 싶지 않기 때문에이 두 형식 모두에서 작업하기를 원했습니다.
추 신 : id를 class = "postalCode"로 변경하고 $ ('# postalCode')를 $ ('. postalCode')로 변경했지만 여전히 작동하지 않았습니다. 나는 또한 우편 번호 텍스트 필드에 onClick 트리거를 추가하여 util.js를 읽었는지 테스트 할 경고 (코드는 util.js에 있음)가 표시되고 작동하지만 여전히 문제를 해결하지 못합니다. 나는 당황 스럽다. 나는 그것을 onKeyUp에 간단하게 다시 쓸 수 있었고 이전 자바 스크립트 방식으로 함수를 추가 할 수 있었지만 여기서 뭔가를 놓칠 수있었습니다. 그래서 여러분들의 의견을 먼저 듣고 싶습니다. : '(
JS 콘솔의 내용은 무엇입니까? –
페이지의 소스를 볼 때 util.js가있는 것을 볼 수 있습니다. grails이 작업을 완료했다고 생각합니다. 왜 이제는 순수한 자바 스크립트 문제일까요? 오류가 발생하면 방화 광 콘솔에서 확인하십시오. 그렇지 않으면 방화 광에서 스크립트를 디버깅 할 수 있습니다. –
form1에서 작동하기 때문에 다소 이상하지만 form2에서는 작동하지 않습니다. 나는 firebug 콘솔에서 javascript 디버깅을 시도하지 않았지만 지금 시도 할 것이다. :) 그리고 예, form1과 form2 모두 view 소스에 util.js가 있습니다. –