Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.03.2013, 06:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от VEGA
но при отправке формы через Ctrl+Enter этого не происходит..
<form  id="myForm" target="frame1" onkeyup="" action="site/action" onsubmit="clearForm(this);return true;">

			Сообщение:</br>

			<textarea id="msg"  name="msg"  cols="36" rows="4" style="width:90%;" ></textarea>


</br></br>

			<input  type="submit" value="Отправить сообщение" onclick="">

</form>
<script type="text/javascript">
function splash()
	{
		if (document.myForm.msg.value  =='')
			{
				alert ("Заполните текст сообщения!");
				return false;	
			}
		return true;   
	}

	// загрузка сообщений из БД в контейнер messages
	function show_messages()
	{
		$.ajax({
			url: "show.php",
				data: "&page=<?=intval($_GET['page'])?>",
			cache: false,
			success: function(html){
				$("#messages").html(html);
			}
		});
	}
	$(document).ready(function(){
		show_messages();
		// контроль и отправка данных на сервер в фоновом режиме при нажатии на кнопку "отправить сообщение"
		$("#myForm").submit(function(){
			var msg  = $("#msg").val();
			if (msg =='')
			{
				alert ("Заполните текст сообщения!");
				return false;
			}
			$.ajax({
				type: "POST",
				url: "action.php",
				data: "msg="+msg+"&action=add",
				
			
				success: function(msg){
					show_messages();
			   }
			
			});
			return false;
		});
		
	show_messages();
    setInterval("show_messages()", 10000);
	
      

      var flagGoIn = true;
$('#myForm')
	.off('keydown')
	.on('keydown', function(event){
		if (event.keyCode == 17) {
	        $('#myForm').on('keydown', function(event){
			var msg  = $("#msg").val();
				if (event.keyCode == 13 && flagGoIn) {
					if (msg =='')
			{
				alert ("Заполните текст сообщения!");
				return false;
			}setTimeout(function() {$('#myForm').reset()}, 100)
					$.ajax({
				type: "POST",
				url: "action.php",
				data: "msg="+msg+"&action=add",
				
				
				success: function(msg){
					show_messages();
			   }
			
			
			
			});
					//$('#myForm').off('keydown');
					flagGoIn = false;
					
				}
			})
			.keyup(function(event){
				flagGoIn = true;
			});
		}
	});

      
  

      
	});





function clearForm(f) {
  window.setTimeout(function() {
    f.reset();
  }, 100);
}
</script>

Последний раз редактировалось Deff, 01.03.2013 в 06:52.
Ответить с цитированием
  #12 (permalink)  
Старый 01.03.2013, 06:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от VEGA
053
$('#myForm')
054
    .off('keydown')
055
    .on('keydown', function(event){
056
        if (event.keyCode == 17) {
057
            $('#myForm').on('keydown', function(event){
А че тут творится?
Сообщение от VEGA
Где ошибка ?
Так ведь clearForm сам не вызовется, нужно вызывать по нажатию Ctrl+Enter.
Ответить с цитированием
  #13 (permalink)  
Старый 01.03.2013, 06:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Deff, вопрос не читай @ сразу отвечай!
Ответить с цитированием
  #14 (permalink)  
Старый 01.03.2013, 08:32
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

VEGA,
не надо таскать код по разным местам - сделай функцию отправки сообщения и ссылайся на нее при нажатии на кнопку и на комбинацию клавиш.

Сообщение от danik.js Посмотреть сообщение
А че тут творится?
off-on вызывается из-за того, что у меня одна страница и всё остальное - динамическая подгрузка. Поэтому я сначала сбрасываю событие, а потом назначаю.
Если так не делать, то при переходе юзера по комнате события на элементе будут накапливаться и сначала у тебя отправиться один раз, потом два, три и т.д.
Скрипт отдал "как есть" - пусть он сам разбирается, если хочет научиться.
Ответить с цитированием
  #15 (permalink)  
Старый 01.03.2013, 13:11
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Сообщение от Serg_pnz Посмотреть сообщение
VEGA,
не надо таскать код по разным местам - сделай функцию отправки сообщения и ссылайся на нее при нажатии на кнопку и на комбинацию клавиш.


off-on вызывается из-за того, что у меня одна страница и всё остальное - динамическая подгрузка. Поэтому я сначала сбрасываю событие, а потом назначаю.
Если так не делать, то при переходе юзера по комнате события на элементе будут накапливаться и сначала у тебя отправиться один раз, потом два, три и т.д.
Скрипт отдал "как есть" - пусть он сам разбирается, если хочет научиться.

а как вызвать функцию clearForm ?

function clearForm(f) {
  window.setTimeout(function() {
    f.elements.msg.value='';
  }, 100);
}


пробую вот так .. не работает
var flagGoIn = true;
$('#myForm')
	.off('keydown')
	.on('keydown', function(event){
		if (event.keyCode == 17) {
	        $('#myForm').on('keydown', function(event){
			var msg  = $("#msg").val();
				if (event.keyCode == 13 && flagGoIn) {
					if (msg =='')
			{
				alert ("Заполните текст сообщения!");
				return false;
			}
					$.ajax({
				type: "POST",
				url: "action.php",
				data: "msg="+msg+"&action=add",
				
			   clearForm();
				success: function(msg){
					show_messages();
					
			   }
			
			
			
			});
					//$('#myForm').off('keydown');
					flagGoIn = false;
					
				}
			})
			.keyup(function(event){
				flagGoIn = true;
			});
		}
	});
Ответить с цитированием
  #16 (permalink)  
Старый 01.03.2013, 13:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от VEGA
пробую вот так .. не работает
Функция внутри объекта может быть вызвана только в таком контексте

{
   <свойство>: myFnc()
}
Ответить с цитированием
  #17 (permalink)  
Старый 01.03.2013, 13:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Так ведь надо агрументом ссылку передать на форму. Посмотри на определение функции. Ну да, и затолкал вызов хрен пойми куда.

Последний раз редактировалось danik.js, 01.03.2013 в 13:22.
Ответить с цитированием
  #18 (permalink)  
Старый 01.03.2013, 13:52
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

$('#твоя-тексареа').val('');

вставить сразу по отправке сообщения

VEGA,
попробуй проанализировать http://37a.su/js/chatIn.js
Ответить с цитированием
  #19 (permalink)  
Старый 01.03.2013, 14:09
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Сообщение от Serg_pnz Посмотреть сообщение
$('#твоя-тексареа').val('');

вставить сразу по отправке сообщения

VEGA,
попробуй проанализировать http://37a.su/js/chatIn.js
var flagGoIn = true;
$('#myForm')
	.off('keydown')
	.on('keydown', function(event){
		if (event.keyCode == 17) {
	        $('#myForm').on('keydown', function(event){
			var msg  = $("#msg").val();
				if (event.keyCode == 13 && flagGoIn) {
					if (msg =='')
			{
				alert ("Заполните текст сообщения!");
				return false;
			}
					$.ajax({
				type: "POST",
				url: "action.php",
				data: "msg="+msg+"&action=add",
				

				success: function(msg){
					show_messages();
					clearForm();
					
			   }
			

			
			});
				$('#msg').val('');
					//$('#myForm').off('keydown');
					flagGoIn = false;
					
				}
			})
			.keyup(function(event){
				flagGoIn = true;
			});
		}
	});


Вы опять мне очень помогли
Благодарю вас .. Все работает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы AJAX`ом? Jopses jQuery 4 20.02.2013 12:34
Отправка формы по нажатию на ENTER Vuzy Общие вопросы Javascript 9 24.01.2013 23:36
Отправка формы по ENTER (ajax) byzyk jQuery 2 07.11.2012 18:03
Отправка формы с помощью XMLHttpRequest2 и FormData pav jQuery 3 05.10.2011 10:16
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12