| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Нажать Submit только 1 раз |
| Автор: Рейкин 1.6.2005, 00:14 |
| Как сделать, чтобы Submit можно было нажать только однажды на странице. Как на этом форуме, например: нажал и неактивны больше кнопки. Спасиб |
| Автор: Sardar 1.6.2005, 01:02 | ||
Ставим кнопку в disabled=true, снимаем сие дело по таймеру, если твой сервак/коннект проглючил и ничего не загрузил.
|
| Автор: Рейкин 1.6.2005, 02:33 |
| благодарю. простестю - отпишу. |
| Автор: Рейкин 1.6.2005, 03:35 |
| Я посылаю форму методом post, но после нажания ничего не происходит. Только кнопка становится "ненажимаемой", но форма не отсылается... (должна перегрузиться страница с обработкой данных формы) В чём проблема, подскажите. |
| Автор: Sardar 1.6.2005, 03:47 |
| Покажи код, иначе не известно. Естественно что в своём коде я твою форму не отсылаю Если это нужно, то не только выкладывай свой код, но и говори конкретней что ты сам не можешь сделать Передай ссылку на форму, вызови метод submit(). |
| Автор: Рейкин 1.6.2005, 05:22 | ||||
go.php
после изменений получилось так go.php
вот есть процедура, которая обрабатывает данные формы до определённого момента. Эт всё работает. Просто обнаружен баг, что при постоянном нажатии на отсылку данных (не позволяя странице перегрузиться), происходит множественное выполнение процедуры с последствиями... проще говоря, хочу запетить нажимать на кнопку submit более одного раза, пока страница не перегрузилась. И спасибо за скорые ответы. |
| Автор: o.s.a. 1.6.2005, 11:05 | ||
Рейкин, так тебе сначала нужно отправить данные с формы, а потом уже отключать кнопку:
|
| Автор: Рейкин 1.6.2005, 16:30 |
| 2-мя руками "за" Как смогу проверить на сайте - отпишу. Благодарю! |
| Автор: Sardar 1.6.2005, 18:59 |
| Рейкин а не лучше ли было в сессиях тайм-флаг поставить? |
| Автор: Рейкин 1.6.2005, 19:19 | ||
оппа, а это цельно решает мою проблему (описал выше)? алгоритм можно? +инфо: это онлайн игра. симуляция боя. удары, если конкретней. |
| Автор: Sardar 1.6.2005, 19:36 | ||
Ставим переменную в сессиях, проверяем её при запросе.
|
| Автор: Рейкин 1.6.2005, 19:47 |
| ясно. я попробую, система интересная. |
| Автор: Рейкин 2.6.2005, 20:20 | ||||
кнопка немеет, страница перегружается... и данные не передаются
|
| Автор: o.s.a. 2.6.2005, 20:43 |
| Рейкин, очень интересно, я еще раз проверил и данные у меня прекрасно передаются, но теперь я сам не понимаю смысл отключения кнопки: она отключается до отправки формы, но т.к. открывается эта же страница, то теперь кнопка опять работает. Так смысл ее было отключать? А ты лучше покажи весь свой код и посмотрим, что у тебя там не передается |
| Автор: Рейкин 3.6.2005, 01:53 | ||||
это и есть цель. Замечен баг, когда нажимают "бесконечно" на кнопку, не давая странице перегрузиться. А PHP процедуры запускает постоянно. Поэтому шаг вроде один (однажды страница перезагрузилась, а действий десяток. Блокируя нажатие кнопки повторно я частично решаю проблему.
чтобы дать возможность сделать новое действие (снова одноразовое). Без скрипта - страница, ессно работает (перегружается с данными), а со скриптом - пустая страница. Яссно - буду тестить, но всё же в чём загвоздка? Я пытался играть с именем для <form> но не помогло. |
| Автор: o.s.a. 3.6.2005, 04:50 | ||||
теперь понятно зачем отключали кнопку
Где же твой скрипт? У тебя он наверняка не такой как в примере? Или возможно ты неправильно выводишь данные? У тебя значение value поля ($aaa) - это переменная или просто строка "$aaa" ? У меня вывод осуществляентся так (имена hidden-полей у меня изменены, и вывод с помошью PHP):
|
| Автор: Рейкин 4.6.2005, 03:15 |
| $aaa - переменная код сам потестю, и отпишу. o.s.a., Sardar - вам спасибо. Хочу дальше попробовать сам разобраться. |
| Автор: o.s.a. 4.6.2005, 05:07 | ||||
Рейкин, ну так если переменная, то так не проканает
нужно
|
| Автор: Рейкин 4.6.2005, 16:24 | ||
переменные вносятся посредством PHP вот, собственно форма, которая работать должна. и без JS она работает(!). Почему не срабатывает она сейчас - непонятно, по крайнем мере мне. |
| Автор: o.s.a. 4.6.2005, 16:53 | ||||||
Рейкин, точно не уверен, но возможно из-за этого
нужно
или
|
| Автор: Рейкин 4.6.2005, 22:00 |
| попробовал оба варианта. Тот же эффект. В связи с этим вопрос - изменяет ли что-то JS при передачи данных формой? Ведь без него всё ОК (не считая уязвимости скрипта, что и хочу решить), а просто добавив JS у меня просто выводится пустая страница. И это я протестю, но жаль, ведь явно чувствуется влияние JS, а остальное менять... смысл? |
| Автор: Sardar 4.6.2005, 22:17 |
| Что то я не пойму, у тебя 2 формы submit2 Скинь ссылку на страницу, где увидеть все можно. |
| Автор: Рейкин 4.6.2005, 22:24 |
| я пробовал и только одну форму переименовывать - то же самое. И разве это существенно? ;) что выберится - то и сработает. Хотя это JS, могу ошибаться www.basabas.com/game/ - в дуэлях. но там нет этой функции с JS, так как получается пустая страница, а атакующий игрок "умирает" на 2 суток, как наказание за преждевременный непрограмный выход из боя. |
| Автор: Sardar 4.6.2005, 22:51 | ||
Преставь себе, это существенно особенно если ты юзаешь древний способ обращения document.что_то. Ты наверное не задумывался что так ты кнопки и другие элементы по именам выбираешь Выход, отсылаем форму как: bt.form.submit() |
| Автор: Рейкин 4.6.2005, 23:47 |
| ... теперь всё передаётся, а кнопка не "замирает" |
| Автор: Рейкин 5.6.2005, 03:47 |
| сделал, задал каждой форме своё имя и JS Ещё раз спасибо! |