Показать сообщение отдельно
  #3 (permalink)  
Старый 19.04.2019, 00:48
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 96

Сообщение от ksa
Если форма отправляется - ты уже *не теряешь управление...
да, я уже это понял (*теряешь -очепятка))
Сообщение от ksa
Не делай обработку кнопки submit. Более оптимальный вариант - все делать в onsubmit формы.
ksa, можно подробней или пример.

Я понял, что без preventDefault не обойтись, сделал так:
<div id="ddd" style="border: 1px solid #CCCCCC; width:50px; height:100px; background:#f00; margin-bottom: 10px;"></div>

<form action="#" method="post" name="ckform">
 <p>Имя</p> <input type="text" class="validate" name="name"/>
 <p>Email</p> <input type="text" class="validate" name="email"/>
 <p>Сообщение</p><textarea name="message" rows="6" cols="25"></textarea><br />
 <input name="submit_bt" id="submit_bt" class="buttonRED" style="background:#ccc; padding:8px 10px;" type="submit" value="Отправить" />
</form>

<script type="text/javascript">
function cancelEvent(event) { //IE
   if (event.preventDefault) { 
      event.preventDefault();
   } else {
      event.returnValue = false; 
   }
}

$("#submit_bt").live("click", function(){
	var name = $(".validate").val(); 
	if (name == "") { 
		$(".validate").addClass('fc-error');
	}else{
		$(".validate").removeClass('fc-error');
	};
	check();
});

function check(event){
	if($(".fc-error").length > 0){
		//alert("err");	
		}else{
		event.preventDefault();
		var self = this;
		//alert("NO err");
		$("#submit_bt").attr('value', 'Форма отправляется'); 
		$("#submit_bt").prop('disabled', true); 
		$("#ddd").animate({'width':'590'},2500, function(){  self.form.submit();  });  
	};
};
</script>

Передаю значение функции check в другую функцию (которая с кликом), в итоге preventDefault не работает. Если все сделать в одной функции, тогда все ОК. Но нужно именно значение одной функции, передать в другую. Это возможно?

Последний раз редактировалось rodiony4, 19.04.2019 в 02:00.
Ответить с цитированием