Drupal7通过jQuery获取节点编辑表单中复选框的更改状态



我为Drupal 7编写了一个小模块,用于检查是否有人正在更改复选框的状态(字段类型为"boolean",名称为"field_calculate")
编辑表单中呈现的HTML标记为:

<input type="checkbox" class="form-checkbox" value="1" name="field_calculate[und]" id="edit-field-calculate-und">

为了加载表单中的JavaScript/jQuery,我使用以下(工作)代码:

<?php function java_form_alter(&$form, $form_state, $form_id){
if($form_id == 'article_node_form'){
$form['field_calculate']['#after_build'] = array('_load_my_javascript');
}
}
function _load_my_javascript($element){
drupal_add_js( drupal_get_path('module', 'java') . '/java.js');
return($element);
} ?>

在每个"article_node_form"上都会加载脚本"java.js"。一切都好。脚本是

(function ($) {
alert("START");
$('input#edit-field-calculate-und').change(function() {
alert("KLICK");
});            
})(jQuery);

加载页面/节点/添加/文章时,将显示警报"START"(意味着:脚本已正确加载)。之后,页面的内容出现

单击/更改复选框"计算"时,不会发生任何事情
I预计将出现第二个警报"KLICK"。

怎么了如何为节点窗体中的复选框触发更改事件

谢谢你的帮助
Tobias

以下脚本与预期的一样工作:

jQuery(document).ready(function($) {
$('#edit-field-calculate-und').change(function() {
alert('Handler for .change() called.');
});
});

最新更新