Здравстуйте, нужна помощь:
есть форма со списком, у списка есть колбек который отрабатывает на событие change при выборе элемента списка(это работает как надо).
<?php
$form['list'] = array(
'#type' => 'select',
'#options' => $list_items,
'#default_value' => $current_id,
'#attributes' => array('class' => array('js-select')),
'#ajax' => array(
'wrapper' => "wrapper_id",
'event' => "change",
'callback' => "my_form_ajax_callback",
),
);?>
Нужно чтобы это же действие отработало при клику по нужному Div
attach: function(context, settings) {
console.log(settings.ajax);
$('.mydiv', context).mousedown(function(){
$('#select_id', context).val('10').trigger('change');
});
}
};
Джквери код при клике на див селект меняет, но вот функция колбека не отрабатывает/не подхватывается.
Что еще надо дописать чтобы работало и для клика по диву?
Помогите пожалуйста.
Комментарии
https://www.drupal.org/docs/7/api/javascript-api/simple-drupal-ajax-load...
P.S. А лучше полностью задачу распишите, т.к. скорее всего, можно и без скрипта обойтись...
По клику на элементе(див, ссылка и т.д.) нужно изменить выбранное значение в селекте ($('#select_id', context).val('10').trigger('change')) и заставить отработать 'callback' => "my_form_ajax_callback" .
Значение как я написал выше - меняется, а вот сам колбек на "change" не отрабатывает.
Если же выбрать значение в самом селекте - то он работает как и должно(аякс апи друпала).
Вот и ломаю уже сутки голову почему не отрабатывает по событию и как его заставить работать.
через state не получится, элементы по которым будут кликать не являются частью формы
Так что ли надо?
$('#select_id').val('10').trigger('change');
});
этот код только установит значение но не отправит форму. И форма состоит из одного только селекта.
Вопрос как засабмитить такую форму?
Ну значит на сабмит должен быть функционал...
Говорю же, распишите полностью задачу... И что у вас в my_form_ajax_callback...
в этой форме сабмита нет, за него тут событие change
если я напрямую в селекте выбираю значение - то колбек отрабатывает и часть хтмл разметки заменяется разметкой которую возвращает колбек
И мне нужно сделать тоже самое только уже по клику и через джс.
Тоесть код $('#select_id').val('10').trigger('change'); выбирает нужное мне значение и устанавливает его в селекте только вот само событие не запускает отработку колбека который привязан к этому селекту.
Что в консоли JS пишет?
вообще ничего не писало
$('#select_id').val('10').trigger('change'); - отрабатывает и запускает колбек
Можно закрывать, проблема оказалась в совсем другом, в jquery.js добавленном к верстке и отключенном jquery_update.
Спасибо за помощь.