Теперь другая проблема)) Вывел этот функционал из формы редактирования элемента, наконец-то начала нормально работать кнопка "Применить" при выборе пользователя (во всех браузерах), но теперь пользователь добавляется только тогда, когда не используется фильтр, если его использовать то ajax запрос отправляется не пойми куда и пользователь не заносится в таблицу БД.
Понял в чем дело, проблема была в том, что таблица списка элементов находилась внутри формы редактирования элемента, именно поэтому 2 браузера чудили...
Если отредактировать его и добавить перед 2 формой </form> или <form name="name="form_'.$this->table_id.'""></form> то работает во всех браузерах, люди подскажите, а то я уже все перерыл, не понимаю....
Я уже разобрал всю логику работы javascripta этого функционала, но не могу понять, почему форма пропадает из дива tbl_user_result_div в браузерах Opera и Chrome в других все работает...
this.EnableActions = function() { var form = document.forms['form_'+this.table_id]; // получаем форму таблицы элементов if(!form) return; // если форма не найдена, прекращяем работу функции
var bEnabled = this.IsActionEnabled(); // если найден checkbox 'Для всех' и отмечен или кол-во выбранных элементов больше 0 var bEnabledEdit = this.IsActionEnabled('edit'); // если не найден checkbox 'Для всех' и не выбран и кол-во выбранных элементов больше 0
if(form.apply) form.apply.disabled = !bEnabled; // если найдена кнопка 'применить', проверяем если отмечен checkbox 'Для всех' или выбран хоть 1 элемент, то делаем кнопку активной var b = document.getElementById('action_edit_button'); // получаем ссылку 'Редактировать отмеченные записи' // если найдена ссылка 'Редактировать отмеченные записи' // убираем из имени класса -dis, если не отмечен checkbox 'Для всех' и выбран хотябы один элемент if(b) b.className = 'context-button icon action-edit-button'+(bEnabledEdit? '':'-dis'); b = document.getElementById('action_delete_button'); // получаем ссылку "Удалить отмеченные записи" // если ссылка "Удалить отмеченные записи" найдена // убираем из имени класса -dis, если отмечен checkbox "Для всех" if(b) b.className = 'context-button icon action-delete-button'+(bEnabled? '':'-dis'); }
Функция, при клике на кнопку "найти", ищет форму родителя, проверяет заполненные поля формы, устанавливает класс состояния фильтра (активный, не активный), отправляет ajax запрос на эту же страницу с подготовленным URL фильтра, возвращает ответ сервера в div 'tbl_user_result_div'.
Почему пропадает форма в 2 браузерах, так и не понял...(
Функция, которая делает активной кнопку "Применить"
this.EnableActions = function() { var form = document.forms['form_'+this.table_id]; if(!form) return;
var bEnabled = this.IsActionEnabled(); var bEnabledEdit = this.IsActionEnabled('edit');
if(form.apply) form.apply.disabled = !bEnabled; var b = document.getElementById('action_edit_button'); if(b) b.className = 'context-button icon action-edit-button'+(bEnabledEdit? '':'-dis'); b = document.getElementById('action_delete_button'); if(b) b.className = 'context-button icon action-delete-button'+(bEnabled? '':'-dis'); }
Но, так как формы "form_tbl_user" нету, она исчезает при нажатии на кнопку "Найти" в фильтре, функция дальше не выполняется, подскажите, в чем может быть причина??
Если не фильтровать пользователей, то тогда получаются 2 формы на странице, а при фильтрации одна форма куда-то пропадает, скорей всего из за этого не активна кнопка "применить". (