Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка формы только по клику на submit кнопку 
:(
    Опции темы
maxipub
Дата 16.11.2012, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Как сделать сабж? Пробую обрабатывать onsubmit формы, но как узнать что именно клик по submit кнопке вызвал данное событие?

Это сообщение отредактировал(а) maxipub - 16.11.2012, 13:50
PM MAIL   Вверх
Aliance
Дата 16.11.2012, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Как-то так:
Код

<form onsubmit="return false;">
    <input type="submit" onclick="this.form.onsubmit = function() {};" />
</form>


Это больше псевдокод, но принцип понятен должен быть.
PM MAIL WWW ICQ Skype   Вверх
ksnk
Дата 16.11.2012, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



У меня что-то такое в коде

Код

<form class="ajax" ... >
   <input name="submit" type="hidden">
...

Код

$("form.ajax").submit(

    $.post($(this).action,$(this).serialize(),function(){
       ...
    }
)

$(document).on('click','input[type="submit"]',function(){
   var name=$(this).attr('name');
   $('input[name="submit"]',$(this).parents('form').eq(0)).attr('value',name);
})



Это точно нужно на javascript узнавать? На php несложно понять на какую кнопку кликнули по появлении параметра с именем кнопки в POST'е

Это сообщение отредактировал(а) ksnk - 16.11.2012, 15:11


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 16.11.2012, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Aliance, ну принцип и так понятен. А вот сделать не получается. smile 

Делаю так:

Код

onclick="this.form.onsubmit = function() {return true;};"


Но форма отправляется все равно в любом случае, не только по клику на кнопку. Про onsubmit="return false;" конечно же, не забываю. Что не так делаю?

Цитата(ksnk @  16.11.2012,  15:10 Найти цитируемый пост)
Это точно нужно на javascript узнавать?

Да.

ЗЫ: все отлично работает, если вынести сабмит-кнопку за пределы формы и прописать а-ля:

Код

onclick="document.forms['my_form'].submit();"


Вот только без JavaScript такая кнопка вообще работать не будет, что совсем не есть гуд.
PM MAIL   Вверх
Aliance
Дата 16.11.2012, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Цитата(maxipub @  16.11.2012,  16:32 Найти цитируемый пост)
Но форма отправляется все равно в любом случае, не только по клику на кнопку.

А как она тогда отправляется?
PM MAIL WWW ICQ Skype   Вверх
maxipub
Дата 16.11.2012, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(Aliance @  16.11.2012,  15:55 Найти цитируемый пост)
А как она тогда отправляется?

При нажатии Enter в input c type="text", к примеру. Мне надо чтоб такого не было, только через нажатие на кнопку.

Но при этом чтобы форма сохраняла свою работоспособность без JavaScript.
PM MAIL   Вверх
ksnk
Дата 16.11.2012, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(maxipub @  16.11.2012,  17:44 Найти цитируемый пост)
Но при этом чтобы форма сохраняла свою работоспособность без JavaScript. 

Ну дык, так и надо было объяснять 

Нужно нарисовать нормальную форму, которая исправно работает без Javascript. Потом на JS отменить ей сабмит, навесить на "submit-кнопки" функции реального сабмита с установкой имени нажатой кнопки и все.

Примерно как у меня в примере.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
maxipub
Дата 16.11.2012, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(ksnk @  16.11.2012,  17:56 Найти цитируемый пост)
Примерно как у меня в примере. 

Я плохо знаю JavaScript, но знаю. jQuery же вообще не бум-бум. Так что ваш пример вообще ни о чем не говорит. smile
PM MAIL   Вверх
Aliance
Дата 16.11.2012, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Код

<input type="text" name="text" onkeydown="if(event.keyCode == 13){return false;}" />

PM MAIL WWW ICQ Skype   Вверх
maxipub
Дата 16.11.2012, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Aliance, тоже об этом думал. Но кто знает сколько вообще у формы способов быть отправленной? smile
PM MAIL   Вверх
ksnk
Дата 16.11.2012, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386





--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0864 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.