Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 30.05.2016, 19:52
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

скажите, а при использовании события onsubmit определить по нажатию какой из кнопок это произошло, возможно?
Ответить с цитированием
  #12 (permalink)  
Старый 30.05.2016, 22:01
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

еще раз перечитал, нашел только способ, если обработчик вешать на click самих кнопок, но не на submit формы.
Ответить с цитированием
  #13 (permalink)  
Старый 30.05.2016, 22:42
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

winch,
document.forms[0].onsubmit = function(event) {
  alert(event.target.tagName);//form
}

не получишь ты так кнопку...
вешай на клик кнопки... в чем проблема?
Ответить с цитированием
  #14 (permalink)  
Старый 31.05.2016, 05:09
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

дык вот в том то и дело, что не посылаются значения кнопки на сервер (вернее на берутся функцией serialize), если обработчик навешан на submit формы. а я именно об этом спрашивал.
Ответить с цитированием
  #15 (permalink)  
Старый 31.05.2016, 05:23
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

Немного объясню зачем мне надо вешать обработчик именно на submit.
В современной web разработке очень часто возникает необходимость отправлять формы аяксом. поэтому, чтобы не писать один тот-же код на разных страницах, я решил сделать универсальную функцию:
function FormSubmitAjax(sel1, success, sel2){  
    $(sel1).on('submit', sel2, function(ev){
      ev.preventDefault();
      var form = $(ev.target);
      $.ajax({ type: form.context.method,
        url: form.context.action,
        data: form.serialize(),
        context: { form: form},
        success: function(dat, status){
	       success.apply(this, [dat, status]);
        },
    });
  });
}

однако при практическом использовании выяснилось что <input type="submit" name="test"/> не посылается, вот ищу способ, как это исправить.
Ответить с цитированием
  #16 (permalink)  
Старый 31.05.2016, 13:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Метод serialize() не возвращает поля отправки файлов и кнопки отправки формы, но ни ко не запрещает form.serialize() + "&" + и добавить кнопку. Зачем она только нужна не понятно.
Ответить с цитированием
  #17 (permalink)  
Старый 31.05.2016, 22:36
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

Сообщение от laimas Посмотреть сообщение
Метод serialize() не возвращает поля отправки файлов и кнопки отправки формы, но ни ко не запрещает form.serialize() + "&" + и добавить кнопку. Зачем она только нужна не понятно.
Нужна она затем, чтобы знать какую именно кнопку нажал пользователь, в тех случаях если кнопок несколько на одной форме.
Ответить с цитированием
  #18 (permalink)  
Старый 31.05.2016, 22:43
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

Rise
ага! основная идея в том, чтобы перед отправкой найти нажатую кнопку селектором ':submit:focus'
спасибо! воспользуюсь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка строки при ajax (post) запросе virus-07 AJAX и COMET 2 17.07.2013 13:55
Подсветка кнопок при использовании AJAX dTi AJAX и COMET 3 03.07.2013 19:14
При подгрузке страницы через AJAX JS не отрабатывается, но подгружается vityurov Общие вопросы Javascript 2 20.06.2013 12:24
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06