Показать сообщение отдельно
  #1 (permalink)  
Старый 02.10.2013, 22:22
Новичок на форуме
Отправить личное сообщение для Lemonyy Посмотреть профиль Найти все сообщения от Lemonyy
 
Регистрация: 02.10.2013
Сообщений: 2

привязать 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)
Подскажите пожалуйста, как осуществить задуманное, какие ср-ва и функции использовать.
Ответить с цитированием