Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.02.2013, 15:01
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Отправка формы по ENTER (ajax) и перенос строки
<form id="myForm"  action="site/action">
<table border="0">

	<tr>
		<td width="160" valign="top">
			Сообщение:
		</td>
		<td>
			<textarea id="msg"  id="message" name="msg" style="width: 300px;"></textarea>
		</td>

	</tr>		
	<tr>
		<td width="160">
			&nbsp;
		</td>
		<td>
			<input  type="submit" value="Отправить сообщение">
		</td>
	</tr>
</table>
</form>
<div id="messages">
</div>

function splash()
	{

			
		if (document.myForm.msg.value  =='')
			{
				alert ("Заполните текст сообщения!");
				return false;	
			}
		
		return true;   
	}

	// загрузка сообщений из БД в контейнер messages
	function show_messages()
	{
		$.ajax({
			url: "show.php",
			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);
	});


Форма нормально работает но только при клике на кнопку "Отправить сообщение"
Как сделать так чтобы сообщение отправлялось и по кнопке и по ENTER'у , а shift + enter и ctrl + enter перенос строки ?

Заранее большое спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2013, 15:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от VEGA
Как сделать так чтобы сообщение отправлялось и по кнопке и по ENTER'у , а shift + enter и ctrl + enter перенос строки ?
Ловить событие клавиатуры и обрабатывать...
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2013, 15:19
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Сообщение от ksa Посмотреть сообщение
Ловить событие клавиатуры и обрабатывать...
можно пример ? насколько я понял то что я хочу сделать совсем не сложно..
но вот опыта и знаний пока маловато
Ответить с цитированием
  #4 (permalink)  
Старый 28.02.2013, 15:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от VEGA
можно пример ?
Да их тьма!
Ответить с цитированием
  #5 (permalink)  
Старый 28.02.2013, 15:43
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Сообщение от ksa Посмотреть сообщение
Да их тьма!
Эти примеры я видел !
я не могу вснуть функцию так чтобы она работала у меня ..
можете пожалуйста помочь ?
Ответить с цитированием
  #6 (permalink)  
Старый 28.02.2013, 15:48
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Сообщение от VEGA Посмотреть сообщение
можно пример ?
var flagGoIn = true;
$('#MessChat') // область для textarea и кнопки отправить
	.html(result.html) //вставляет в область textarea и кнопку отправить
	.off('click', '#MessChatOk')
	.on('click', '#MessChatOk', function(){
		$.goMessIn(); //отправляет по клику на ОК
	})
	.off('keydown')
	.on('keydown', function(event){
		if (event.keyCode == 17) {
	        $(document).on('keydown', function(event){
				if (event.keyCode == 13 && flagGoIn) {
					$.goMessIn(); // отправляет по ctrl + enter
					$(document).off('keydown');
					flagGoIn = false;
				}
			})
			.keyup(function(event){
				flagGoIn = true;
			});
		}
	});


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

Сообщение от Serg_pnz Посмотреть сообщение
var flagGoIn = true;
$('#MessChat') // область для textarea и кнопки отправить
	.html(result.html) //вставляет в область textarea и кнопку отправить
	.off('click', '#MessChatOk')
	.on('click', '#MessChatOk', function(){
		$.goMessIn(); //отправляет по клику на ОК
	})
	.off('keydown')
	.on('keydown', function(event){
		if (event.keyCode == 17) {
	        $(document).on('keydown', function(event){
				if (event.keyCode == 13 && flagGoIn) {
					$.goMessIn(); // отправляет по ctrl + enter
					$(document).off('keydown');
					flagGoIn = false;
				}
			})
			.keyup(function(event){
				flagGoIn = true;
			});
		}
	});


Посмотреть можно тут http://37a.su/ (необходимо зарегистрироваться)

как мне этот код всунуть сюда ?

в этом коде у меня все отлично отправляется.. но не знаю как в эту функцию всунуть отправку сообщения по Enterу и перенос строки по shift+Enter и ctrl+Enter

$(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);
	});

Последний раз редактировалось VEGA, 28.02.2013 в 16:19.
Ответить с цитированием
  #8 (permalink)  
Старый 28.02.2013, 16:40
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Держи http://learn.javascript.ru/play/7yMPRb
Ответить с цитированием
  #9 (permalink)  
Старый 01.03.2013, 05:11
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

Сообщение от Serg_pnz Посмотреть сообщение
Держи http://learn.javascript.ru/play/7yMPRb
спасибо огромное
Ответить с цитированием
  #10 (permalink)  
Старый 01.03.2013, 05:19
Интересующийся
Отправить личное сообщение для VEGA Посмотреть профиль Найти все сообщения от VEGA
 
Регистрация: 28.02.2013
Сообщений: 14

еще вопрос..

мне нужно очистить textarea после отправки формы ..

При нажатии на кнопку все ок.. textarea очищается после отправления формы..

но при отправке формы через Ctrl+Enter этого не происходит..
Где ошибка ?

<form id="myForm"  action="site/action" onsubmit="clearForm(this); return true;">

			Сообщение:

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


</br></br>

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

</form>



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;
			}
					$.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.elements.msg.value='';
  }, 100);
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы 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