07.08.2018, 08:48
|
Новичок на форуме
|
|
Регистрация: 07.08.2018
Сообщений: 7
|
|
Поменять свойство disable в зависимости от времени.
Добрый день! Я новичек и мне нужна помощь.
У меня есть форма с кнопкой. Как сделать данную кнопку активной в определенное время каждый день? Например кнопка всегда неактивна, кроме с 16 00 до 17 00 каждый день
<form action="" method="post">
<input type="hidden" name="do" value="payeer_pay">
<input type="hidden" name="antipovtor" value="<?=time();?>">
<table width="930" height="21px" border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td align="center">
<br><b>Введите сумму вклада (от <?=$mindep?> до <?=$maxdep?> рублей) </b> <br> <br><input style="text-align:center;" name="m_amount" type="text" value="100" size="5" maxlength="10"><input type="submit" name="submit2" value="Сделать вклад" class="reg"></td>
</tr>
Пробовал вот этот способ переделать, но не получилось
<script>
$(function() {
// установить кнопки свойство disabled, равное true (т.е. сделать её не активной)
$('input[type="submit"]').prop('disabled', true);
// при отпускании клавиши, проверить значение данного поля
$('input[name="m_amount"]').keyup(function() {
// если значение не равно пустой строке
if($(this).val() != '') {
// то сделать кнопку активной (т.е. установить свойству disabled кнопки значение false
$('input[type="submit"]').prop('disabled', false);
}
});
});
</script>
С пустым значением работает.
|
|
07.08.2018, 09:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
hacklife,
это ограничение лучше сделать на сервере, любой сможет отменить 'disabled' на клиенте, и время на клиенте у каждого своё
|
|
07.08.2018, 09:07
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<input type="submit" name="submit2" value="Сделать вклад" class="reg">
<script>
$(function(){
var date = new Date();
(function dis(){
$('input[type="submit"]').prop('disabled', date.getHours() !== 16);
setTimeout(dis,1000);
})();
});
</script>
но лучше сервер, переведите на компе время и кнопка станет активной
|
|
07.08.2018, 10:20
|
Новичок на форуме
|
|
Регистрация: 07.08.2018
Сообщений: 7
|
|
Сообщение от j0hnik
|
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<input type="submit" name="submit2" value="Сделать вклад" class="reg">
<script>
$(function(){
var date = new Date();
(function dis(){
$('input[type="submit"]').prop('disabled', date.getHours() !== 16);
setTimeout(dis,1000);
})();
});
</script>
но лучше сервер, переведите на компе время и кнопка станет активной
|
Как можно сделать проверку на сервере?
|
|
07.08.2018, 10:23
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
if(date('H')==16){
//do something
};
|
|
07.08.2018, 11:00
|
Новичок на форуме
|
|
Регистрация: 07.08.2018
Сообщений: 7
|
|
Сообщение от Nexus
|
if(date('H')==16){
//do something
};
|
Можно на примере выше показать как встроить эту проверку? И ещё: как заблокировать отправку формы по нажатию Enter? Буду премного благодарен.
|
|
08.08.2018, 07:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
hacklife, if(date('H')==16) будет означать, что условие для для всех клиентов определяется временем сервера. Блокировать кнопку можно, а можно вообще не выводить на страницу форму. Но так или иначе этого мало, обмануть при желании всегда можно, а значит блокирование, это чисто для клиента, а сервер же должен всегда проверять время при приеме формы и не принимать ее если не соблюдается условие.
|
|
08.08.2018, 09:46
|
Новичок на форуме
|
|
Регистрация: 07.08.2018
Сообщений: 7
|
|
Сообщение от laimas
|
hacklife, if(date('H')==16) будет означать, что условие для для всех клиентов определяется временем сервера. Блокировать кнопку можно, а можно вообще не выводить на страницу форму. Но так или иначе этого мало, обмануть при желании всегда можно, а значит блокирование, это чисто для клиента, а сервер же должен всегда проверять время при приеме формы и не принимать ее если не соблюдается условие.
|
Доброе утро! Я это понимаю. Проблема в том что пытаюсь прописать условие, и ограничение не работает. Ограничение по времени клиента работает. Возможно я что-то неверно делаю.
|
|
08.08.2018, 10:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от hacklife
|
Ограничение по времени клиента работает.
|
Каким образом сервер будет знать о времени клиента?
|
|
08.08.2018, 11:44
|
Новичок на форуме
|
|
Регистрация: 07.08.2018
Сообщений: 7
|
|
Я имею ввиду данный вариант работает. А мне нужно что бы для любого часового пояса было одинаково, по времени МСК.
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<input type="submit" name="submit2" value="Сделать вклад" class="reg">
<script>
$(function(){
var date = new Date();
(function dis(){
$('input[type="submit"]').prop('disabled', date.getHours() !== 16);
setTimeout(dis,1000);
})();
});
</script>
Последний раз редактировалось hacklife, 08.08.2018 в 11:47.
|
|
|
|