Drupal7使用jQuery获取node-edit-form中复选框的状态

时间:2012-09-14 10:17:05

标签: jquery drupal-7

我为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);

加载页面/ node / add / article时,会出现警告“START”(表示:脚本正确加载)。 之后,页面内容出现。

点击/更改“计算”复选框时,没有任何反应。
期待第二个警告“KLICK”出现。

怎么了? 如何在节点表单中为复选框触发更改事件?

感谢您的帮助!
托拜厄斯

1 个答案:

答案 0 :(得分:0)

以下脚本的工作方式与预期相同:

jQuery(document).ready(function($) {

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

});