Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2011, 15:36
Новичок на форуме
Отправить личное сообщение для Vampiref92 Посмотреть профиль Найти все сообщения от Vampiref92
 
Регистрация: 02.08.2011
Сообщений: 3

Определение какая кнопка была нажата на форме
Как определить какая из кнопок была нажата?
Есть форма с инпутом, кучей полей, и 3 кнопками
надо сделать чтобы при нажатии на 1-ю кнопку происходило сохранение измененых значений на форме(тобишь как я думал вызывался метод submit формы) и происходил редирект

<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="basket_form">
бла бла бла
<?if (in_array("QUANTITY", $arParams["COLUMNS_LIST"])):?>
<td class="cart-item-quantity"><input maxlength="18" type="text" name="QUANTITY_<?=$arBasketItems["ID"] ?>" value="<?=$arBasketItems["QUANTITY"]?>" size="3" onfocus="this.select()" ></td>
<?endif;?>
бла бла бла
<input type="submit" value="Продолжить заказ" name="BasketProd" id="basketprod" >
<input type="submit" value="<?echo GetMessage("SALE_UPDATE")?>" name="BasketRefresh" id="refresh">
<input type="submit" value="<?echo GetMessage("SALE_ORDER")?>" name="BasketOrder" id="basketOrderButton2">
</form>

<script type="text/javascript">
document.forms['basket_form'].onsubmit = function(){
Если нажата кнопка
{
document.location.href = 'ссылка';
}
else
{
return false;
}
};
</script>

Последний раз редактировалось Vampiref92, 02.08.2011 в 17:03.
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2011, 15:53
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Если нужно определить на клиенте, то можно вешать обработчик на onclick кнопок. Если на сервере, то такой проблемы нет вообще, т.к., если мне память ни с кем не изменяет, то на сервер приходит только та кнопка, которая и была нажата, а остальные игнорируются.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2011, 17:02
Новичок на форуме
Отправить личное сообщение для Vampiref92 Посмотреть профиль Найти все сообщения от Vampiref92
 
Регистрация: 02.08.2011
Сообщений: 3

проблема в том что если я вешаю onclick то на submit кнопке он не работает а на кнопке button он не сохраняет данные с формы так что этот метод не идет и обработка идет на клиенте поэтому я и хотел определить нажатие кнопки
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2011, 17:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

обработчик события онклик на обычную кнопку. в обработчике какието запланированные действия и затем вызов метода submit формы.
Сообщение от Vampiref92
надо сделать чтобы при нажатии на 1-ю кнопку происходило сохранение измененых значений на форме(тобишь как я думал вызывался метод submit формы) и происходил редирект
с редиректом не ясно.у формы всегда будет редирект на страницу указанную в параметре action=" формы(если это не аякс)
для того чтоб отправить данные ,а затем перейти на другую абсолютно страницу -3 варианта
1-на сервере обрабатывать данные и делать редирект на другую страницу
2 вышеописанным методом вызывать метод сабмит формы,но на сценарии обработчике-после обработки результатов возвращать заголовок 204. при нём не будет перехода на страницу обработчик и затем делать редирект ,но уже на клиенте
3 использовать аякс

Последний раз редактировалось dmitriymar, 02.08.2011 в 17:25.
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2011, 17:12
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Ну зачем на обычную? Все прекрасно и с сабмитами работает (вариант с применением jQuery, но запросто реализуется и без него).
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2011, 17:21
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от SkyLight
Ну зачем на обычную? Все прекрасно и с сабмитами работает (вариант с применением jQuery, но запросто реализуется и без него)
только блокируется в библиотеке сабмит(как стандартные действия при нажатии сабмит ,так и стандартное действие формы при нажатии энтера-сабмит формы)-смысл извращаться с блокировкой действия ,если можно на обычную вешать?

Последний раз редактировалось dmitriymar, 02.08.2011 в 17:23.
Ответить с цитированием
  #7 (permalink)  
Старый 03.08.2011, 11:45
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Не совсем понял, что именно блокируется. Ведь при таком раскладе сначала отрабатывает click, в котором можно, скажем, произвести какие-то манипуляции, специфичные для конкретной сабмит-кнопки), а потом срабатывает submit, где уже идет общая логика отработки перед отправкой.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент, в котором была нажата клавиша Australl Элементы интерфейса 23 09.02.2011 23:11
Как определить какая кнопка в <form> была нажата? konstantinopol Общие вопросы Javascript 5 20.12.2009 15:40