0

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」が表示されます(つまり、スクリプトが正しくロードされます)。その後、ページの内容が表示されます。

「計算」チェックボックスをクリック/変更しても何も起こりません。2番目のアラート「KLICK」が表示される
ことを期待していました。

どうしたの?ノードフォームのチェックボックスに対して変更イベントを発生させるにはどうすればよいですか?

ご協力いただきありがとうございます!
トビアス

4

1 に答える 1

0

次のスクリプトは期待どおりに機能します。

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

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

});
于 2012-09-15T07:16:06.630 に答える