Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   привязать 2 обработчика к одной кнопке (https://javascript.ru/forum/events/41886-privyazat-2-obrabotchika-k-odnojj-knopke.html)

Lemonyy 02.10.2013 22:22

привязать 2 обработчика к одной кнопке
 
Здравствуйте, товарищи:)
Выполняя доработку системы (JavaScript, PHP) зависла на следующей задаче: на странице имеется 2 независимых формы (условно форма 1 и форма 2), у каждой несколько полей ввода. Если активна форма 1, заблокирована форма 2 (и наоборот). После ввода всех данных в поля формы 1 происходит их отправка на сервер по нажатию кнопки (также и для второй формы, в зависимости от того, какую используем).
Итак, проблема: кнопка отправки для обоих форм одна и та же. Как корректно задать обработчик для кнопки в зависимости от того, какая форма используется?
*********************
var m_grid1=new TTgrid(3,4); //Формирующая сетка
var m_grid2=new TTgrid(3,4);
...
//форма 1.
var year=new TTselect(new Array({"caption":"Выбрать год","val":""}),170);
var fk=new TTselect(new Array({"caption":"Выбрать факультет","val":""}),170);
...
//форма 2.
var od=new TTselect(new Array({"caption":"Выбрать отдел","val":""}),170);
...
m_grid1.append_to(...);
m_grid2.append_to(...);
...
//описание кнопки, по нажатию которой будем загружать данные на сервер
var go_btn=new TTimgbutton("<br>Загрузить","./img/button/go.png",false,btn_size,btn_size);
go_btn.append($("#tools")[0]);

function load_TT() {... } //функция загрузки данных, полученных из формы 1 на сервер
function load_TT_od() {... } //функция загрузки данных, пщлученных из формы 2 на сервер

//вот здесь нужно как-то выбрать, какую функцию использовать, load_TT или load_TT_od (в зависимости от того, какая форма //активна). пример моего решения

if (year.get_val()>0||fk.get_val()>0) //eсли в форме 1 что-то есть
{ go_btn.add_click(load_TT); } //привязываем к кнопке обработчик 1
else if (od.get_val()>0) //если в форме 2 что-то есть
{ go_btn.add_click(load_TT_od); } //привязываем к кнопке обработчик 2

Очевидно, что работать в таком виде не будет, потому что в начале, при загрузке основной страницы в полях каждой из форм пусто, т.е ни одно из условий не выполнится.
Возможно, нужно в процессе ввода данных в форму каким-то образом общаться с сервером, что данные введены. (PHP, Ajax)
Подскажите пожалуйста, как осуществить задуманное, какие ср-ва и функции использовать.

nerv_ 02.10.2013 23:53

Цитата:

Сообщение от Lemonyy
TTselect

ТТ - пистолет )

Lemonyy 04.10.2013 15:35

Проблема решена.


Часовой пояс GMT +3, время: 06:58.