Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправка формы (https://javascript.ru/forum/jquery/46685-otpravka-formy.html)

Dimanchik87 19.04.2014 14:27

Отправка формы
 
При нажатии на кнопку отправки, форма почему-то отправляется только со 2 раза (т.е. вообще любые действия с формой происходят только со 2 раза (отправка, появление подсказки в случае неправильно заполненных полей)). В чём проблема не смог разобраться.Помогите
function form_sent(form){
		var form=form;
		function error(target){
				var target=target;
				target.css("border","solid 2px red");
				target.next(".help").css("display","block");
		};
		
		$(form+" input[type=text], "+form+" textarea").on("focusin",function(event){
			$(event.target).css("background","#cfc");
			$(event.target).next(".help").css("display","block");
			$(event.target).css("border","");
		});
		$(form+" input[type=text],"+form +" textarea").on("focusout",function(event){
			var target=$(event.target);
			target.css("background","#f5dae2");
			target.next(".help").css("display","none");
			if (target.val()){
				if(target.attr("name")=="name"&&!pattern1.test(target.val())){
					error(target);
				}	
				if(target.attr("name")=="phone"&&!pattern2.test(target.val())){
					error(target);
				};
			}; 
		});
		$(form).on("submit",function(){
			
			if (!pattern1.test($(form+" input[name=name]").val())||!pattern2.test($(form+" input[name=phone]").val())){
				if (!pattern1.test($(form+" input[name=name]").val())){
					error($("input[name=name]"));
				};
				if (!pattern2.test($(form+" input[name=phone]").val())){
					error($("input[name=phone]"));
				};
				return false;
			};
			if (form=="#form_to_sent"){
				var orders=getCookie("all_orders").split("|");
				var list=""; 
				for (i=0;i<orders.length-1;i++){
					orders[i]=orders[i].split(",");
					list+=i+1+') Модель: '+orders[i][0]+' Количество: '+orders[i][1]+ 'шт. Цена за единицу товара: '+orders[i][2]+" руб.\r\n";
				}
				if (!list) return false;
				list+= "\r\nКоличество заказанных товаров: "+getCookie("total")+ " шт.\r\nОбщая сумма заказа: "+getCookie("total_sum")+" руб.";
				$('#form_to_sent input[type="hidden"]').val(list);     
				
				deleteCookie("total");
				deleteCookie("total_sum");
				deleteCookie("all_orders"); 
			};
		});
	};

krasovsky 21.04.2014 07:39

Ставь console.log() там где у тебя загвоздка, а в твоем случае надо проверить что происходить (и происходит ли вообще) на событие submit.
Если в первый раз ничего - значит проблема с навешиванием самого события в form_sent.
Если в первый раз получилось, занчит проблема в условиях в $(form).on("submit",function(){})


Часовой пояс GMT +3, время: 10:10.