Архив

Архив раздела ‘Javascript’
20 февраля 2017 Нет комментариев
function validateVin(vin){
	var re=new RegExp("^[A-HJ-NPR-Z\\d]{8}[\\dX][A-HJ-NPR-Z\\d]{2}\\d{6}$");
	return vin.match(re);
}

Обновлено:
1. Не учитываем регистр:

function validateVin(vin){
	var re=new RegExp("^[A-HJ-NPR-Z\\d]{8}[\\dX][A-HJ-NPR-Z\\d]{2}\\d{6}$","i");
	return vin.match(re);
}

2. Некоторые корректные VIN-номера все равно не проходят проверку, поэтому делаем дополнительную проверку на то что в строке:

  • только латиница и цифры;
  • нет символов I, O и Q;
  • последние 4 символа — цифры.
$('#form').on('submit',function(){
	var error='';
	var vin=$("input[name=carVIN]").val();
	if(!validateVin(vin)){
		var Reg=new RegExp("^[a-zA-Z0-9]+$");
		if(Reg.test(vin)&&vin.toLowerCase().indexOf("i")==-1&&vin.toLowerCase().indexOf("o")==-1&&vin.toLowerCase().indexOf("q")==-1&&vin.length>4&&$.isNumeric(vin.slice(-4))){
			var res=confirm('Неправильное заполнения VIN-номера повлияет на время обработки заявки');
			if(res==false) return false;
		}
		else{
			error+='VIN указан неверно\r\n';
		}
	}
	if(error!=''){
		alert(error);
		return false;
	}
});

Второе можно попробовать сделать одним регулярным выражением. Или исправить что-то в первом…

Categories: Javascript Tags:
3 февраля 2017 Нет комментариев

Например имеем код:

<ul id="service_filter">
	<li class="active"><a href="#" data-service="0">Все</a></li>
	<li><a href="#" data-service="1">Услуга 1</a></li>
	<li><a href="#" data-service="2">Услуга 2</a></li>
	<li><a href="#" data-service="3">Услуга 3</a></li>
</ul>
<div class="article_item" data-services="'1'">Описание 1</div>
<div class="article_item" data-services="'1','2','3'">Описание 2</div>
<div class="article_item" data-services="'3'">Описание 3</div>
$(document).ready(function(){
	$('ul#service_filter li a').on('click',function(){
		var service=$(this).data('service');
		$(this).closest('ul').find('li').removeClass('active');
		$(this).parent().addClass('active');
		if(service=='0'){
			$('.article_item').fadeIn();
		}
		else{
			$('.article_item').fadeOut();
			$('.article_item').each(function(i,el){
				var id="'"+service+"'";
				if($(el).data('services').search(id)!=-1){
					$(el).fadeIn();
				}
			});
 
		}
		return false;
	});
});

В таком случае второй div.article_item будет показан при клике по любой ссылке, а 1 и 3 только по 1 и 3 соответственно.

Categories: Javascript Tags:
27 января 2017 Нет комментариев

Получить value всех отмеченных checkbox в блоке, перечисленные через запятую.

$('.catalog a.submit').live('click',function(){
	var options=[];
	$.each($(".catalog input[type=checkbox]:checked"),function(){
		options.push($(this).val());
	});
	alert(options);
	return false;
});
Categories: Javascript Tags: ,
17 января 2017 Нет комментариев
function resizeInput(){
	$(this).css('width',($(this).val().length*7.5)+'px');
}
$(document).ready(function(){
	$('.inputs input').each(resizeInput);
});
Categories: Javascript Tags: ,
17 января 2017 Нет комментариев
$.fn.toggleText=function(t1,t2){
	if(this.text()==t1)this.text(t2);
	else this.text(t1);
	return this;
};

Пример использования:

$(document).ready(function(){
	$(".shch").click(function(){
		$(this).toggleText('+','-');
		$(this).closest('li').children('ul').slideToggle();
		return false;
	});
});
Categories: Javascript Tags: ,
12 января 2017 Нет комментариев

В примере задержка 200мс перед появлением блока

$('.cart_module').delay(200).fadeIn();
Categories: Javascript Tags:
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: