Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2016, 22:51
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

onclick при submit
Здравствуйте.Прошу помочь разобраться.Есть код в смарти шаблоне.
{literal}
<style>
.hide{display:none;}
</style>
{/literal}

<div class="hidden">
<form action="" method="POST" name="msgform"  enctype="multipart/form-data">
<input type="hidden" name="prev" value="1" />
...................................................
    <input type="submit" name="gosend" id="gosend" value="{$LANG.SEND}"  style="font-size:16px"/>
	<input type="button" onclick="document.msgform.submit();"  id="prev" value="prev"  style="font-size:16px"/>
</form>
</div>
<div class="hidden hide">
{include file='com_forum_preview.tpl'}
</div>

Всё работает.Но не могу сменить при клике класс hide у hidden.Как только не пробовал.И в инпут дописывал и в отдельную ф-цию.Не хочет при submit работать.Верхний див остаётся, а нижний на секунду мелькает и опять скрывается.

Последний раз редактировалось ureech, 07.02.2016 в 22:54.
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2016, 14:39
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ureech, попробуйте
<input type="button" onclick="showDiv();"  id="Button2" value="prev"  style="font-size:16px"/>

Эту кнопку лучше вынести из формы.
и
function showDiv() {
              document.getElementsByClassName('hidden hide')[0].style.display = "block";
              document.msgform.submit();
          }

А кнопка submit при этом вроде бы и не нужна
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2016, 16:44
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

А нужно, похоже, совсем без submit и, соответственно, перезагрузки страницы, например
http://smartlanding.biz/otpravka-for...-stranicy.html
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2016, 17:35
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Нет... Делал и вот так
<!DOCTYPE html>
<html>
<head>
     <title></title>
     <style>
.hide{display:none;}
</style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</script>
      <script>
          $(function () {
              $("#form").onsubmit = function () {
                  var form_data = $("#form").serializeArray;
                  $.ajax({
                      url: '',
                      type: 'POST', 
                      data: form_data
                  });
                  $(".hide").style.display = "block";
              };
          });
       </script>
</head>
<body>
   <div class="hidden">
      <form action="#" id="form">
         <input type="hidden" name="prev" value="1" /> 
         <input type="submit" name="submit">
      </form>
    </div>
   <div class="hide">
    скрытый див
   </div>
</body>
</html>

все равно обновляется
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2016, 18:40
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Dilettante_Pro,
попробуй...
$(function () {
              $("#form").submit = function () {
                  var form_data = $("#form").serializeArray;
                  $.ajax({
                      url: '',
                      type: 'POST', 
                      data: form_data
                  });
                  $(".hide").style.display = "block";
return false;
              };
          });
Ответить с цитированием
  #6 (permalink)  
Старый 08.02.2016, 22:00
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Сообщение от Dilettante_Pro
Эту кнопку лучше вынести из формы.
Не могу.Она должна работать как submit.
DynkanMaclaud,
так тоже не работает, в любом случае происходит перезагрузка.Видно придётся с другой стороны к проблеме подходить.
Ответить с цитированием
  #7 (permalink)  
Старый 08.02.2016, 22:15
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

ureech,а так?
<form action="" method="POST" id='myForm' name="msgform"  enctype="multipart/form-data">
<input type="hidden" name="prev" value="1" />
  <input type="submit" name="gosend" id="gosend" value="{$LANG.SEND}"  style="font-size:16px"/>
	
</form>
<div class="hidden hide">
{include file='com_forum_preview.tpl'}
</div>

$(document).ready(function() {
	
	$('#myForm').submit(function(e) {
		
	  e = e || event;
		
		 var form_data = $(this).serialize(); 
            $.ajax({
            type: "POST", //Метод отправки
            url: "your path", //путь до php фаила отправителя
            data: form_data,
            success: function() {
                   
				   $('.hide').addClass('.yourClass');
                                   $('.hide').removeClass('.hide');
				   alert('ok');
            }
    });
		
		e.preventDefault();
		
		
			
	})
	

	

	
})

Здесь проблема не в аяк запросе а в том что событие submit по умолчанию перезагружает страницу, поэтому в обработчике нужно написать
e.preventDefault();
, вот на тестовой странице ссылка, внизу есть форма и она работает по скрипту выше, если у вас перезагрузка продолжается то почистите кэш...

Последний раз редактировалось DynkanMaclaud, 08.02.2016 в 22:57.
Ответить с цитированием
  #8 (permalink)  
Старый 09.02.2016, 08:08
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Сообщение от DynkanMaclaud
вот на тестовой странице ссылка,
Ссылка алерт выводит, а форму не отправляет.Так и у меня работает.
e.preventDefault(); не помог.Ладно, возможно дело в специфики смарти, погуглю это дело.
Ответить с цитированием
  #9 (permalink)  
Старый 09.02.2016, 09:59
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

ureech,
отправляет она форму, раз алерт вывела))) зачем же мне приводить нерабочий пример?)) ты 111111 везде вводил

Последний раз редактировалось DynkanMaclaud, 09.02.2016 в 10:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки кнопки при нажатии и обратно при повторном нажатии mff Общие вопросы Javascript 15 03.05.2018 14:12
JavaScript, Выделить все значения в multiselect при нажатии submit VBeregovoy Общие вопросы Javascript 2 06.02.2013 20:09
Почему скрипт отрабатывает в IE только при первом входе на сайт? tygeddar Элементы интерфейса 3 20.09.2012 01:37
Подружить два скрипта (скроллер+скрипт эффекта при наведении) Che jQuery 26 29.08.2012 10:59
Перенаправление OnClick при условии Pacan4ik Элементы интерфейса 0 09.04.2012 06:32