2010-07-20 3 views
0

을 클릭하면, 나는 (특정 양식에 자바 스크립트를 추가하는) 다음과 같은 한 :hook_form_FORM_ID_alter는 사용자 정의 모듈에서

function mymodule_form_mynode_node_form_alter(&$form, $form_state) { 
    drupal_add_js(drupal_get_path('module', 'mymodule') . '/js/mymodule.js', 'module'); 
} 

이 기능은 형태가 전화를받을 않습니다 처음로드 (예 : http://myserver.com/node/add/mynode)하지만 양식이 무효화 된 후 (즉, '제출'또는 '미리보기'를 클릭 한 후 필수 필드가 누락 된) 동일한 양식을 다시로드 할 때이 PHP 함수가 호출되지 않습니다.

'제출'또는 '미리보기'를 클릭 한 후에 javascript 파일을 추가하려면 어떻게해야합니까? 문제를 해결하기

감사합니다,

답변

0

변경 양식은 양식 작성시에만 호출됩니다. 양식은 요청간에 캐시되므로 제출 및 미리보기에서 동일하고 이미 작성된 양식이 사용됩니다.

양식을 렌더링 할 때마다 코드가 호출되는지 여부를 확신 할 필요가 있습니다. googletorp에서 지적한대로, 한 가지 방법은 use a custom form rendering function입니다. 양식에 post 또는 pre-rendering 함수를 첨부하여이 작업을 수행 할 수도 있습니다. 사실, 사용자 정의, 사전 또는 사후 렌더링 기능은 양식 자체 일 필요는 없으며 모든 양식 요소에서 사용할 수 있습니다. JavaScript가 동작을 변경하는 것이 바람직합니다.

1

, 당신은 양식을 렌더링하고, JS 파일을 추가 폼의 테마 기능을 만들어야합니다.

관련 문제