Архив

Публикации с меткой ‘jquery’
29 декабря 2016 Нет комментариев

Решаем проблему с тем, что атрибут required не работает в мобильных safari (возможно еще где-то).
Обновлено:

$('form').on('submit',function(){
	var required=$(this).find('[required="required"]');
	var error=false;
	$(required).each(function(){
		if($(this).val()==''){
			$(this).css('border-color','#e03c42');
			if(!error){
				$(this).focus();
			}
			error=true;
		}
		else{
			$(this).css('border-color','#ffffff');
		}
	});
	if(error){
		return false;
	}
});

Прежний вариант:

$('form').on('submit',function(){
	var required=$(this).find('[required="required"]');
	var error=false;
	for(var i=0;i<=(required.length-1);i++){
		if(required[i].value==''){
			required[i].style.backgroundColor='rgb(255,155,155)';
			error=true;
		}
		else{
			required[i].style.backgroundColor='white';
		}
	}
	if(error){
		return false;
	}
});

Оригинал с http://stackoverflow.com/questions/10664356/html5-form-element-required-on-ipad-iphone-doesnt-work

$('form').submit(function(){
	var required=$('[required="true"]');
	var error=false;
	for(var i=0;i<=(required.length-1);i++){
		if(required[i].value==''){
			required[i].style.backgroundColor='rgb(255,155,155)';
			error=true;
		}
	}
	if(error){
		return false;
	}
});

Или на основе чего-нибудь из (http://stackoverflow.com/questions/23261301/required-attribute-not-work-in-safari-browser):

$("form").submit(function(e){
	var ref=$(this).find("[required]");
	$(ref).each(function(){
		if($(this).val()==''){
			alert("Required field should not be blank.");
			$(this).focus();
			e.preventDefault();
			return false;
		}
	});
	return true;
});
$('#idForm').click(function(e){
	e.preventDefault();
	var sendModalForm=true;
	$('[required]').each(function(){
		if($(this).val()==''){
			sendModalForm=false;
			alert("Required field should not be blank.");
			$('.error-message').show();
		}
	});
	if(sendModalForm){
		$('#idForm').submit();
	}
});
Categories: Javascript Tags:
29 декабря 2016 Нет комментариев
$(".datepicker").datepicker();
$.datepicker.regional['ru']={
	closeText:'Закрыть',
	prevText:'&#x3C;Пред',
	nextText:'След&#x3E;',
	currentText:'Сегодня',
	monthNames:['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
	monthNamesShort:['Янв','Фев','Мар','Апр','Май','Июн','Июл','Авг','Сен','Окт','Ноя','Дек'],
	dayNames:['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
	dayNamesShort:['вск','пнд','втр','срд','чтв','птн','сбт'],
	dayNamesMin:['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
	weekHeader:'Нед',
	dateFormat:'dd.mm.yy',
	firstDay:1,
	isRTL:false,
	showMonthAfterYear:false,
	yearSuffix:''
};
$.datepicker.setDefaults($.datepicker.regional['ru']);
Categories: Javascript Tags:
17 октября 2016 Нет комментариев

Правильный вариант:

$('.cart_item_morecount input[type=text]').live('mouseover mouseout',function(){
	if(event.type=='mouseover'){
		$(this).parent().find('.morecount').show();
	}
	else{
		$(this).parent().find('.morecount').hide();
	}
});

Не удастся код:

$('.cart_item_morecount input[type=text]').hover(function(){
	$(this).parent().find('.morecount').show();
},function(){
	$(this).parent().find('.morecount').hide();
});

записать как:

$('.cart_item_morecount input[type=text]').live('hover',function(){
	$(this).parent().find('.morecount').show();
},function(){
	$(this).parent().find('.morecount').hide();
});
Categories: Javascript Tags:
14 октября 2016 Нет комментариев
$('.catalog_filter_item input[type=text]').each(function(i,el){
	el=$(el);
	el.autocomplete({
		source:"/ajax_f.php?f="+el.data('filter'),
		minLength:2,
	});
});
Categories: Javascript Tags:

Скрываем блок catalog_filter_item_multi_values при клике вне него. Также при открытии одного из блоков скрываем остальные. При повторном нажатии скрываем активный. При убирании мыши из области активного блока скрывать его.

$(document).click(function(event){
	if($(event.target).closest(".catalog_filter_item_multi_values").length||$(event.target).closest(".catalog_filter_item_multi_title").length)return;
	$(".catalog_filter_item_multi_values").fadeOut("slow");
	event.stopPropagation();
});
$('.catalog_filter_item_multi').hover(function(){
},function(){
	$(".catalog_filter_item_multi_values").fadeOut("slow");
});
$('.catalog_filter_item_multi_title').click(function(){
	$('.catalog_filter_item_multi_values').not($(this).next()).hide();
	$(this).next('.catalog_filter_item_multi_values').slideToggle();
});
<div class="catalog_filter_items_multi">
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Цвет</div>
		<div class="catalog_filter_item_multi_values">
			<label>бежевый <input type="checkbox" name="color[]" value="20"/><span></span></label>
			<label>белый <input type="checkbox" name="color[]" value="7"/><span></span></label>
			<label>черный <input type="checkbox" name="color[]" value="5"/><span></span></label>
		</div>
	</div>
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Материал</div>
		<div class="catalog_filter_item_multi_values">
			<label>дерево <input type="checkbox" name="mat[]" value="13"/><span></span></label>
			<label>искусственная кожа <input type="checkbox" name="mat[]" value="3"/><span></span></label>
		</div>
	</div>
	<div class="catalog_filter_item_multi">
		<div class="catalog_filter_item_multi_title">Брэнд</div>
		<div class="catalog_filter_item_multi_values">
			<label>707 <input type="checkbox" name="brand[]" value="17218"/><span></span></label>
			<label>Avenue <input type="checkbox" name="brand[]" value="17210"/><span></span></label>
		</div>
	</div>
</div>
Categories: Javascript Tags:
5 апреля 2016 Нет комментариев

Для $_GET

$(".add_to_cart_form").submit(function(){
	$form=$(this);
	$.fancybox({
		'title':"form submission",
		'href':$form.attr("action")+"?"+$form.serialize(),
		'type':'ajax'
	});
	return false;
});

Для $_POST

$(".details_form").submit(function(){
	$form=$(this);
	$.ajax({
		url:$form.attr("action"),
		type:'POST',
		dataType:'html',
		data:$form.serialize(),
		beforeSend:function(){$.fancybox.showLoading();},
		success:function(data,textStatus,xhr){
			$.fancybox({
				'content':data
			});
		},
		error:function(xhr,textStatus,errorThrown){
			alert("An error occurred.");
		},
		complete:function(){$.fancybox.hideLoading();}
	});
	return false;
});

http://stackoverflow.com/questions/6006201/how-do-i-submit-the-data-of-a-form-to-an-iframe-in-fancybox

Categories: Javascript Tags:
1 апреля 2016 Нет комментариев
$('#top_menu > div > ul > li > span').click(function(){
	$('#top_menu ul li').not($(this).parent()).removeClass('hovered');
	$(this).parent().toggleClass('hovered');
});

В примере для открытия подменю по клику.
li.hovered ul{ будет показан

Categories: Javascript Tags: