Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: можно ли застраховаться от повторного нажатия на кнопку-картинку?
 
 автор: elenaki   (16.11.2009 в 19:42)   письмо автору
 
 

по идее, там стоит onclick() и двойной клик не должен срабратывать, это ведь другое
событие - ondoubleclick(). но дураки-клиенты умудряются нажать два раза на кнопку и
в итоге получают пендаль от банка, он их выкидывает. они (ну дураки ведь!) не понимая,
что их выкинули за повторную посылку данных (банк тоже хорош - мог и написать дуракам,
почему их выкидывают), пытаются снова и снова отправить ту же самую форму. хотя
ежу понятно (еж - не дурак), что надо закрыть окно, начать новую сессию и спокойно одним
кликом отправить форму.
как бороться с дураками? может, прикрутить к onclick() еще и AJAX, который втихаря эту
сессию закончит? action в форме я менять не могу, он ведет на сайт банка, менять в форме
переменную ref, по которой определяется, за что именно будет оплата, тоже не могу, форма
не пройдет валидацию (у банка есть еще один скрипт, который по ref вытаскивает из базы
транзакцию и если я ref поменяю, то банк не найдет ничего).
вот не было проблем....откуда только такие "умники" берутся? была у меня еще одна - тоже
вопила "ааааааа! ничего не работает". а там надо было ОДИН раз нажать на Y, скрипт быстро
сделает, что надо и вернется, а Y станет N. так она щелкала ДВА раза, конечно, все крутилось,
но она не замечала моргания страницы, зато вопила громко...

  Ответить  
 
 автор: Lelik   (16.11.2009 в 19:53)   письмо автору
 
   для: elenaki   (16.11.2009 в 19:42)
 

как вариант, так:

var bClick = false;

function submitForm() {
    if(!bClick) {
        bClick = true;
        form.submit();
    }
}

  Ответить  
 
 автор: АЯ   (16.11.2009 в 21:48)   письмо автору
 
   для: elenaki   (16.11.2009 в 19:42)
 

>"там стоит onclick()"

Повесьте на onclick дисаблирование этой кнопки/ссылки:
onclick="this.disabled = true; нужное_вам_действие_по_клику"

  Ответить  
 
 автор: elenaki   (17.11.2009 в 07:33)   письмо автору
 
   для: АЯ   (16.11.2009 в 21:48)
 

а вот это попробую. это кажется надежнее. плюс все равно убью сессию Аяксом.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования