Jquery Drupal 7模块自定义JavaScript AJAX函数调用
我正在尝试向节点编辑表单中的复选框集合添加一些JavaScript功能,如下所示: 当选中/取消选中每个框时,我希望AJAX代码做出响应。我试图将一些AJAX功能附加到复选框中,这似乎如图所示,但存在两个问题:Jquery Drupal 7模块自定义JavaScript AJAX函数调用,jquery,ajax,drupal-7,Jquery,Ajax,Drupal 7,我正在尝试向节点编辑表单中的复选框集合添加一些JavaScript功能,如下所示: 当选中/取消选中每个框时,我希望AJAX代码做出响应。我试图将一些AJAX功能附加到复选框中,这似乎如图所示,但存在两个问题: 我得到以下错误uncaughttypeerror:无法读取未定义的--ajax.js的属性'apply' 如果我取消选中相同的复选框并重新选中,我的AJAX代码将不会响应(我承认这可能是由于上述错误) 下面的代码是我添加赞助商的模块代码。js代码已加载: function conten
function content_event_form_alter(&$form, &$form_state, $form_id){
if($form_id == 'SPECIFIC-FORM-ID'){
drupal_add_js( drupal_get_path('module', 'content_event') . '/js/sponsors.js', array('type'=>'file', 'scope'=>'header', 'group'=>'JS_THEME') );
drupal_add_js(array('content_event' => $form['field_exhibitor'][$form['field_sponsors']['#language']]['#default_value']), 'setting');
/******************************/
$form['field_exhibitor'][$form['#node']->language]['#ajax'] = array(
'callback' => 'my_js',
);
}
}
function my_js(){
$commands[] = ajax_command_invoke('fieldset#node_event_major__form_group_sponsors div.form-type-checkbox', 'test');// . $element['country']['#id'], 'focus');
return array('#type' => 'ajax', '#commands' => $commands);
}
my_js函数是我的ajax回调函数,我试图从中调用js代码中的test函数
下面是我的JavaScript代码:
(function ($) {
Drupal.behaviors.contentevent = {
attach: function (context) {
//DEFAULT - hide all sponsor checkboxes
$('fieldset#node_event_major__form_group_sponsors div.form-type-checkbox').hide();
$items = Drupal.settings['content_event'];
$($items).each(
function($item){
Drupal.behaviors.showSponsor($item);
}
); //end each
Drupal.behaviors.test = function() {
console.log('Testing ... Testing!!!');
};
}
};
Drupal.behaviors.showSponsor = function($index) {
console.log('Test function responding: ' + $index);
$('fieldset#node_event_major__form_group_sponsors div.form-type-checkbox input[value=' + Drupal.settings['content_event'][$index] +']').parent().show();
};
})(jQuery);
不确定我在这里做错了什么。我认为问题在于
ajax\u command\u invoke
函数,它导致了以下情况:
$('fieldset#node#event(重大)form(集团)赞助商div.form-type-checkbox')。test()代码>
如果要继续此方式(未测试),您的
函数必须在“Drupal.behaviors”范围之外,或者尝试将第二个参数更改为ajax\u command\u invoke
为“Drupal.behaviors.test”
我建议选择第一种方法