Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2015, 12:49
Аспирант
Отправить личное сообщение для Elect Посмотреть профиль Найти все сообщения от Elect
 
Регистрация: 06.09.2015
Сообщений: 41

Отправка формы по нажатию enter не обновляя страницу
В общем есть код,все данные на сервер от отправляет,но обновляет страницу,что мне вообще не нужно(по нажатию Enter)
Помогите пожалуйста
<html>
	<head>
		<title>{title}</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
		<link rel="stylesheet" href="{root}style.css" />
	</head>
	<body>
        <script type="text/javascript">
        
        </script>
        {error}
        <div class="left-sidebar">
            {avatar}
            {add_to_f}
            {settings}<br>
            <ul class="left_menu">
            <a href="/id/"><li>Моя страница</li></a>
            <a href="/friends/"><li>Мои друзья {notification}</li></a>
            </ul>
        </div>
        <div class="content-block">
            <div class="content-block-content" style="padding:20px;">
            <h2>{fname} {lname}</h2><div id="changestatusf"><button  id="changestatus" onclick="{status_r}">{status}</button></div>
            <form method="" name="osForm" action="" id="osForm">
                <input class="osForm_input" tabindex="1" id="name" name="name" type="text" value="*Ваше имя" />
                <input class="osForm_input" tabindex="2" id="email" name="email" type="text" value="*Ваш email" />
                <input class="osForm_input" tabindex="3" id="address" name="address" type="text" value="*Адрес доставки (индекс,область,город,улица,дом,квартира)" />
                <input class="osForm_btn" tabindex="4" type="submit" name="sndbtn" value="Отправить" />
            </form>
            <hr>
            Обо мне:{info}
            {friends_block}
            <div class="wall">
                <form class="send_wall" method="POST">
                    <textarea class="wall_send" rows="3" name="wall_send" placeholder="Написать на доске..."></textarea><input class="submitsw" type="submit" name="submitsw" value="">
                </form>
                {wall}
            </div>
            </div>
        </div>
        <script>  
            function changestatus(){
                var changestatusf = document.getElementById('changestatusf');
                changestatusf.innerHTML = "<form onsubmit='SendComment(event)'  method='POST' action='' id='changes'><input type='text' name='changestatus' value='{status}'></form>";
            }
            
            function SendComment(e) {
                e = e || window.event;
                if (e.keyCode == 13) {
                    $('#changes').submit(function(e){
                        e.preventDefault();
                        $.ajax({
                          url: "/id/",
                          type: "POST",
                          data: $('#changes').serialize(),
                          success: function(response) {
                            //обработка успешной отправки
                          },
                          error: function(response) {
                            //обработка ошибок при отправке
                         }
                        });
                    });
                    
                };
            };
            
        </script>
	</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2015, 16:17
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

К прочтению
<script> 
	function changestatus(){
		var changestatusf = document.getElementById('changestatusf');
		changestatusf.innerHTML = "<form onsubmit='return SendComment(event)'  method='POST' action='' id='changes'><input type='text' name='changestatus' value='{status}'></form>";
	}

	function SendComment(e) {
		e = e || window.event;
		e.preventDefault();
		$.ajax({
			url: "/id/",
			type: "POST",
			data: $('#changes').serialize(),
			success: function(response) {
			//обработка успешной отправки
			},
			error: function(response) {
			//обработка ошибок при отправке
			}
		});
		
		return false
	};
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2015, 16:35
Аспирант
Отправить личное сообщение для Elect Посмотреть профиль Найти все сообщения от Elect
 
Регистрация: 06.09.2015
Сообщений: 41

Сообщение от sanmihan Посмотреть сообщение
К прочтению
<script> 
	function changestatus(){
		var changestatusf = document.getElementById('changestatusf');
		changestatusf.innerHTML = "<form onsubmit='return SendComment(event)'  method='POST' action='' id='changes'><input type='text' name='changestatus' value='{status}'></form>";
	}

	function SendComment(e) {
		e = e || window.event;
		e.preventDefault();
		$.ajax({
			url: "/id/",
			type: "POST",
			data: $('#changes').serialize(),
			success: function(response) {
			//обработка успешной отправки
			},
			error: function(response) {
			//обработка ошибок при отправке
			}
		});
		
		return false
	};
</script>
Так у меня перестало работать отправка по нажатию enter
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2015, 19:13
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

Сообщение от Elect
Так у меня перестало работать отправка по нажатию enter
А как ты проверил? не попадает в функцию SendComment? или success не выполнился?
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2015, 10:28
Аспирант
Отправить личное сообщение для Elect Посмотреть профиль Найти все сообщения от Elect
 
Регистрация: 06.09.2015
Сообщений: 41

Сообщение от sanmihan Посмотреть сообщение
А как ты проверил? не попадает в функцию SendComment? или success не выполнился?

SendComment не вызвался,alertom проверил
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2015, 11:30
Аватар для sanmihan
Аспирант
Отправить личное сообщение для sanmihan Посмотреть профиль Найти все сообщения от sanmihan
 
Регистрация: 28.05.2015
Сообщений: 54

<html>
<head>
<title>{title}</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div id="changestatusf">
<button  id="changestatus" onclick="changestatus()">Изменить</button>

</div>
<script>
    function changestatus(){
        var changestatusf = document.getElementById('changestatusf');
        changestatusf.innerHTML = "<form onsubmit='return SendComment(event)'  method='POST' action='' id='changes'><input type='text' name='changestatus' value='статус'></form>";
    }
 
    function SendComment(e) {
        e = e || window.event;
        e.preventDefault();
	alert("сабмит");
        $.ajax({
            url: "/id/",
            type: "POST",
            data: $('#changes').serialize(),
            success: function(response) {
              alert("Успех")
            },
            error: function(response) {
              alert("Ошибка")
            }
        });
         
        return false
    };
</script>
</body>
</html>


Может быть мы про разные формы говорим, у тебя на странице много разных форм.
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2015, 15:14
Аспирант
Отправить личное сообщение для Elect Посмотреть профиль Найти все сообщения от Elect
 
Регистрация: 06.09.2015
Сообщений: 41

Сообщение от sanmihan Посмотреть сообщение
<html>
<head>
<title>{title}</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<div id="changestatusf">
<button  id="changestatus" onclick="changestatus()">Изменить</button>

</div>
<script>
    function changestatus(){
        var changestatusf = document.getElementById('changestatusf');
        changestatusf.innerHTML = "<form onsubmit='return SendComment(event)'  method='POST' action='' id='changes'><input type='text' name='changestatus' value='статус'></form>";
    }
 
    function SendComment(e) {
        e = e || window.event;
        e.preventDefault();
	alert("сабмит");
        $.ajax({
            url: "/id/",
            type: "POST",
            data: $('#changes').serialize(),
            success: function(response) {
              alert("Успех")
            },
            error: function(response) {
              alert("Ошибка")
            }
        });
         
        return false
    };
</script>
</body>
</html>


Может быть мы про разные формы говорим, у тебя на странице много разных форм.
Я имею ввиду первую,это смена статуса,По нажатию она становится полем и по нажатию enter должен отправится запрос и измениться сам статус,не обновляя страницу.
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2015, 15:17
Аспирант
Отправить личное сообщение для Elect Посмотреть профиль Найти все сообщения от Elect
 
Регистрация: 06.09.2015
Сообщений: 41

Это работает,но сам статус не изменился.
Ответить с цитированием
  #9 (permalink)  
Старый 16.09.2015, 04:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Elect,
Сообщение от Elect
Это работает,но сам статус не изменился.
Чтобы статус изменился, нун считать его в ответе на отправку формы и подставить скриптом новое значение на текущую страницу (А не только фиксировать "Успех", но и считывать данные
Старая страница, со старым стусом не обладает экстрасенсорикой
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных по нажатию Enter ivanpotapov2 Общие вопросы Javascript 6 11.12.2014 12:50
Обход элементов формы по Enter myshara jQuery 14 20.10.2014 15:43
Отправка формы по ENTER (ajax) и перенос строки VEGA jQuery 18 01.03.2013 14:09
Отправка формы по нажатию на ENTER Vuzy Общие вопросы Javascript 9 24.01.2013 23:36
Отправка формы по ENTER (ajax) byzyk jQuery 2 07.11.2012 18:03