it-swarm-ko.tech

Ajax가 시작되기 전에 JavaScript 함수를 추가하는 방법

Ajax가 시작되기 전에 FAPI를 사용하여 JavaScript 함수를 어떻게 추가합니까?

$form['submit'] = array(    
  '#type' => 'submit',
  '#value' => 'Upload',
  '#ajax' => array(
    'callback' => 'ajax_submit_key_dump'
  ),
);
3
user871

#after_build 특성:

$form['#after_build'] = array('my_js_add_function');

....

function my_js_add_function($form, &$form_state) {
  drupal_add_js(...);
  return $form;
}

#after_build 양식 정의에 js를 추가하는 대신 양식을 캐시에서 가져온 경우에도 JS가 추가됩니다.

JavaScript 파일에서 원하는 jQuery를 추가 할 수 있으며 제출 버튼의 클릭 핸들러는 원하는 것을 수행해야합니다.

0
googletorp

이러한 방식으로 연결된 "beforeSubmit"핸들러는 Ajax 요청 직전에 실행됩니다.

(function ($) {
  Drupal.behaviors.ReplaceWithAnyTextYouWant = {
    attach: function (context, settings) {
      // 'edit-submit' is the element ID where you execute the #ajax.
      Drupal.ajax['edit-submit'].options.beforeSubmit = function(form_values, element_settings, options) {
      // If cancel is clicked, do not continue submitting.
      if (!confirm('Are you sure you want to continue?')) {
          return false;
      }
    }
  };
})(jQuery);

사용자 입력에 대한 사전 제출 유효성 검사를 수행하고 false를 반환하여 양식 제출을 취소 할 수도 있습니다.

다음은 좋은 예 입니다.

'edit-submit'- '#ajax'설정이있는 제출 버튼의 요소 html ID입니다. 'edit-'접두어는 트리거 요소를 포함하는 양식 배열 항목의 키에 첨부됩니다 (귀하의 경우 제출 버튼). $ form [ 'my-submit'] = array (...)의 경우 결과 버튼의 html ID는 "edit-my-submit"입니다.

위에 표시된 코드가있는 JS 파일은 양식 생성자에서 양식에 첨부 될 수 있습니다.

$form['#attached']['js'][] = drupal_get_path('module', 'your_module') . '/js/file.js';
6
Dmitriy Akinshin

사용자 정의 모듈을 만들었습니다. hook_form_alter () 사용 콘텐츠 형식 중 하나에 JavaScript 파일을 추가했습니다. 더 자세한 내용이 필요하면 말씀하십시오.

0
user709