X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Деактивация кнопки на определенное время
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 2.12.2012, 18:14; Ответить: Дилетант_mw
Сообщение #1


Здравствуйте, уважаемые специалисты.

Ест такая вот кнопка

<button id=reload style="float:right;" type=button onClick="this.form.code.value=''; showContent('/forum/vote.php'); ">Обновить картинку</button>


Которая выполняет фнкцию на php и очищает значение поля code.

Вопрос: как мне сделать так, чтобы при нажатии на эту кнопку она была бы НЕАКТИВНОЙ несколько секунд?

Пробовал впихнуть в onclick функцию setTimeout(document.getElementById('reload').disabled='true',10000);

становится неактивной, но обратно не возвращается.

Заранее благодарю за помощь.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 2.12.2012, 18:48; Ответить: isvetlichniy
Сообщение #2


setTimeout(document.getElementById('reload').disabled='true',10000);

это дективирует кнопку.

А после используйте
document.getElementById('reload').disabled='false';


Тоесть нужно выключить ,а потом включить кнопку
Это самый простой способ решения, основанный на ваших же попытках
в итоге получится код что то вроде
<button id=reload style="float:right;" type=button onClick="this.form.code.value=''; showContent('/forum/vote.php'); setTimeout(document.getElementById('reload').disabled='true',10000);document.getElementById('reload').disabled='false';">Обновить картинку</button>


а зачем вы используете экранирования обратным слэшем?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 3.12.2012, 14:53; Ответить: Дилетант_mw
Сообщение #3


а зачем вы используете экранирования обратным слэшем?

Потому что у меня вот такая штука:

$sid = md5(rand());
return '<input style="float:left;" name="code" size="10" maxlength="8" type="text"> <div style="float:left;" id="contentBody"><input name="sid_ddos" value="'.$sid.'" type="hidden"><img src="agent.php?a=code&amp;sid='.$sid.'" alt="'.MSG_user_nocode.'"></div>  <button id="reload" style="float:right;" type="button" onclick="this.form.code.value=''; showContent('/forum/vote.php'); document.getElementById('reload').disabled=true; setTimeout(document.getElementById('reload').disabled=false,1000); ">Обновить картинку</button><div id="loading" style="display: none"></div> ';


Пока что-то не получается вернуть disabled=true в disabled=false через определённое время.

Смысл такой, чтобы пользователь не нажимал часто на Обновить Картинку. А картинка эта - картинка Капчи.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 3.12.2012, 19:05; Ответить: isvetlichniy
Сообщение #4


ну включайте вы голову пожалуйста!

что это такое? никакой формы у вас нет
this.form.code.value='';

а код есть....

еще, не лепите много функций в обработчик onclick
лучше все это вынести в отдельную функцию
кароче вышло вот что


<?php
$sid = md5(rand());
return '<input style="float:left;" name="code" id="code" size="10" maxlength="8" type="text">
<div style="float:left;" id="contentBody"><input name="sid_ddos" value="'.$sid.'" type="hidden">
<img src="agent.php?a=code&amp;sid='.$sid.'" alt="'.MSG_user_nocode.'"></div>
<button id="reload" style="float:right;" type="button"
onclick="updateCaptcha();">
Reload image</button><div id="loading" style="display: none"></div> ';
?>
<script>
function updateCaptcha(){
document.getElementById('code').value='';
showContent('/forum/vote.php');
document.getElementById('reload').disabled=true;
setTimeout('document.getElementById("reload").disabled=false',1000);
}
</script>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 3.12.2012, 19:11; Ответить: Дилетант_mw
Сообщение #5


Благодарю. Буду пробовать. Форма есть, просто я привел часть кода, который капчу выводит.
Пока попробую на простом примере. Без этих сложных и длинных onclick
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 3.12.2012, 19:16; Ответить: isvetlichniy
Сообщение #6


никогда не используйте вот таких конструкций
this.form.code.value=''


используйте доступ к элементам по айди
document.getElementById('code').value='';
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 3.12.2012, 19:18; Ответить: Дилетант_mw
Сообщение #7


Понял. Это с точки зрения уязвимости неправильно?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 3.12.2012, 19:20; Ответить: isvetlichniy
Сообщение #8


это будет работать только в случае если на сервера включена опция "register_globals=on"
но на 99% серверов эта опция отключена с точки зрения безопасности
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Дилетант_mw
Дилетант_mw
Topic Starter сообщение 3.12.2012, 19:25; Ответить: Дилетант_mw
Сообщение #9


У меня register_globals=off но конструкция работает, поле code очищается. НО ... всё-равно перешел на правильный код.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 3.12.2012, 19:43; Ответить: yury_mw
Сообщение #10


это будет работать только в случае если на сервера включена опция "register_globals=on" но на 99% серверов эта опция отключена с точки зрения безопасности

Причем тут сервер?
Речь ведь о JS, который выполняется исключительно на клиентской машине и про настройки интерпретатора PHP, живущего на сервере, никогда не узнает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Вы тратите собственное время зря?
35 metvekot 2456 19.3.2024, 20:14
автор: MisterBit
Открытая тема (нет новых ответов) Странный трафик на сайте длительное время
26 TABAK 7512 16.3.2024, 17:31
автор: Boymaster
Горячая тема (нет новых ответов) ClickTimes.ru - время зарабатывать на мобильном трафике!
67 CT-Support 9421 15.10.2020, 20:49
автор: CT-Support
Горячая тема (нет новых ответов) BestChange - экономьте время и деньги на обменах
131 Best_Change 28155 31.7.2020, 12:12
автор: Dennis
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыНадо поменять картинки кнопки и всё прочее.
Сделать круто, чтобы не стыдно за сайт
0 atavisma 2975 6.4.2017, 19:04
автор: atavisma


 



RSS Текстовая версия Сейчас: 28.3.2024, 21:41
Дизайн