Drupal 7 Form API Пользовательский javascript с Jquery

Я разрабатываю с Drupal 7 пользовательскую форму с API формы и выбор таблицы с флажками. у меня есть некоторые ограничения для выбора флажков, которые я хочу закодировать с помощью jquery. я сделал функцию для флажка onclick, вне drupal она работает так, как вы можете увидеть ЗДЕСЬ, но когда я пытаюсь интегрироваться с drupal, селектор jquery вообще не работает.

Итак, вот мой код в друпале:

$form ['#attached'] ['js'] = array (drupal_get_path ( 'module', 
    'form_cuentacorriente' ) . '/checkboxes.js' );
$form ['tabla'] = array (
    '#type' => 'tableselect',
    '#header' => $tabla ['header'],
    '#options' => $tabla ['body'],
    '#attributes' => array ('id' => 'conceptos')
);

и вот моя функция js:

(function($){
$('input[type=checkbox]').click(function(){
      var tabla = $("#conceptos")[0];
      var long = tabla.rows.length;
      var pos = $(this).closest("tr").index();

      if (!this.checked){
      for (i = pos+1; i < long +1; i++) {     
      $(tabla.rows[i]).find( 'input' ).prop('disabled', !this.checked).prop('checked', false);
      }
      }else{
      $(this).closest("tr").next().find("input")
          .prop('disabled', !this.checked);
      }  
});  
})(jQuery);

если я использую селектор *, он работает везде, где я нажимаю, но «ввод [тип = флажок]» не работает. Версия JQuery 1.10 на Drupal 7

есть идеи, что мне не хватает?

заранее спасибо!


person Ezequiel Flores    schedule 02.11.2017    source источник
comment
решено благодаря этому: lullabot.com/articles/   -  person Ezequiel Flores    schedule 06.11.2017


Ответы (1)


РЕШЕНО: мне просто нужно было обернуть мою функцию js так из-за поведения Drupal:

Drupal.behaviors.form_cuentacorriente = {
    attach: function (context, settings) {

  $('input[type=checkbox]').click(function(){
    var tabla = $("#conceptos")[0];
    var long = tabla.rows.length;
    var pos = $(this).closest("tr").index();

    if (!this.checked){
    for (i = pos+1; i < long +1; i++) {     
    $(tabla.rows[i]).find( 'input' ).prop('disabled', 
    !this.checked).prop('checked', false);
    }
    }else{
    $(this).closest("tr").next().find("input")
      .prop('disabled', !this.checked);
    }  
  });    

}

Ссылка: https://www.lullabot.com/articles/understanding-javascript-behaviors-in-drupal

person Ezequiel Flores    schedule 06.11.2017