Код Drupal 7 + JS через AJAX - PullRequest
       5

Код Drupal 7 + JS через AJAX

0 голосов
/ 22 октября 2011

Я создал несколько модулей, расширяющих элементы интерфейса FormAPI. Это прекрасно работает, когда я рендерим формы обычным способом (не AJAX). Но если визуализированная форма доставляется по запросу AJAX, JS-скрипт просто вставляет код через функцию $ .html. Поэтому я не могу получить доступ к элементам документа по их идентификатору из скрипта, оцененного $ .html. Есть ли какое-либо решение для передачи кода JavaScript через API Form / Ajax?

1 Ответ

0 голосов
/ 22 октября 2011

Я думаю, что jQuery ("# ​​new-id") (не $ (..)) должен принимать самые новые элементы dom.Вы можете использовать либо свойство 'ajax' формы api

$form['myitem'] = array(
'#type'=>'textfield',
'#ajax' => array(
  'callback' => 'my_callback',
  'wrapper' => 'new-id',
  'method' => 'html',
  'effect' => 'fade',
),
);
$form['myitem2'] = array(
'#type'=>'markup',
'#value'=>"<div id='new-id'> I'm #new-id </div>"
);


function my_callback(&$form, &$form_state){
  $commands = array();
  $commands[] = ajax_command_invoke('#new-id', 'html', array('<div id="new-id2">#new.id2 here!</div>'));
  $commands[] = ajax_command_invoke('#new-id2', 'addClass', array('error'));
  return array('#type' => 'ajax', '#commands' => $commands);
}

D7 ajax_commands: http://api.drupal.org/api/drupal/includes--ajax.inc/group/ajax_commands/7

надеюсь, что эта помощь

...