Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как сделать таймер (https://javascript.ru/forum/events/45614-kak-sdelat-tajjmer.html)

рони 08.03.2014 11:20

ruslite,
пока советую помедитировать над строкой
msg = $("#messageInput").val();

kotamirov 08.03.2014 11:25

Цитата:

Сообщение от ruslite (Сообщение 301696)
нет, не хочет к сожалению. А может реализовать, чтобы форму нельзя было отправлять чаше 3 сек? Как это можно сделать?

массив localStorage используй для хранения времени предыдущего отправления формы, и сравнивай с текущем временем.

рони 08.03.2014 11:26

ruslite,
flag = true; надо вынести за submit
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<div class="example">
			<form class="form-inline" id="messageForm">
				<input id="nameInput" type="hidden" class="input-medium" value="<?php echo $log_username;?>"  />
				<input id="canalInput"  type="hidden" class="input-medium" value="<?php echo $name;?>"  />
				<div id="messageInput" name="messageInput1" placeHolder="Ваше сообщение">12345</div>

				<input  type="submit" value="Отправить" onclick="$('.emoji-wysiwyg-editor').html('')"/>
			</form>

			</div>
<script>
   flag = true;
  $( "#messageForm" ).submit( function() {
	var nameVal = $("#nameInput").val();
    msg = $("#messageInput").html();
    var canalVal = $("#canalInput").val();
    if (nameVal && msg && flag) {
		  flag = false;
		  window.setTimeout(function () {
			  flag = true
		  }, 3000) ;
      alert("форма отправлена");
    }
   else  {alert("ждите отстоя пены")};


	return false;
});

</script>
</body>

</html>

ruslite 08.03.2014 11:29

Цитата:

Сообщение от kotamirov (Сообщение 301699)
массив localStorage используй для хранения времени предыдущего отправления формы, и сравнивай с текущем временем.

можете показать на примере?

ruslite 08.03.2014 11:30

Цитата:

Сообщение от рони (Сообщение 301700)
ruslite,
flag = true; надо вынести за submit
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<div class="example">
			<form class="form-inline" id="messageForm">
				<input id="nameInput" type="hidden" class="input-medium" value="<?php echo $log_username;?>"  />
				<input id="canalInput"  type="hidden" class="input-medium" value="<?php echo $name;?>"  />
				<div id="messageInput" name="messageInput1" placeHolder="Ваше сообщение">12345</div>

				<input  type="submit" value="Отправить" onclick="$('.emoji-wysiwyg-editor').html('')"/>
			</form>

			</div>
<script>
   flag = true;
  $( "#messageForm" ).submit( function() {
	var nameVal = $("#nameInput").val();
    msg = $("#messageInput").html();
    var canalVal = $("#canalInput").val();
    if (nameVal && msg && flag) {
		  flag = false;
		  window.setTimeout(function () {
			  flag = true
		  }, 3000) ;
      alert("форма отправлена");
    }
   else  {alert("ждите отстоя пены")};


	return false;
});

</script>
</body>

</html>

А как вынести flag?

рони 08.03.2014 11:31

ruslite,
строка 23

ruslite 08.03.2014 11:34

Цитата:

Сообщение от рони (Сообщение 301703)
ruslite,
строка 23

всм вот так?
<script>flag =true; </script>
<input type="submit" value="Отправить" onclick="$('.emoji-wysiwyg-editor').html('')"/>

ruslite 08.03.2014 11:40

посоветовали вот так
if(Date.now() - lastCallTime >= 3 * 1000) {
    socket.emit(...);
    lastCallTime = Date.now(); // или new Date().getTime();
}

Как правильно объявить lastCallTime выше кода?

рони 08.03.2014 11:48

ruslite,
ну чем вас решение то из 13 поста неустроило ??? понажимайте там отправить -- форма отправится нечаще 1 раза в три секунды
замените алерт в 33 строке на то что вам нужно

ruslite 08.03.2014 13:03

Цитата:

Сообщение от рони (Сообщение 301710)
ruslite,
ну чем вас решение то из 13 поста неустроило ??? понажимайте там отправить -- форма отправится нечаще 1 раза в три секунды
замените алерт в 33 строке на то что вам нужно

просто все данные обрабатываются в отдельном js скрипте, а форма на php странице. Мне не надо указывать переменные msg? nameVal и т.д.


Часовой пояс GMT +3, время: 03:48.