Архив

Публикации с меткой ‘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:
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: ,
11 января 2017 Нет комментариев

HTML:

<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>
<div id="map"></div>

Javascript:

ymaps.ready(init);
function init(){
	var myMap=new ymaps.Map("map",{
		center:[59.974504,30.550266],
		zoom:11,
		controls:['zoomControl']
	}),
	Placemark1=new ymaps.Placemark([60.002148,30.272623],{
		balloonContent:'Балун 1',
		hintContent:'Стандартный значок метки 1',
	},{
		preset:'islands#redDotIcon'
	}),
	Placemark2=new ymaps.Placemark([59.935935,30.363452],{
		balloonContent:'Балун 2',
		hintContent:'Стандартный значок метки 2',
	},{
		preset:'islands#redDotIcon'
	});
	myMap.geoObjects.add(Placemark1).add(Placemark2);
	myMap.behaviors.disable('scrollZoom');
}

CSS:

#map{
	height:390px;
}
[class*="ymaps-2"][class*="-ground-pane"]{
	filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
	-webkit-filter:grayscale(100%);
}

На основе: http://jsfiddle.net/9aj8j/76/

Categories: Web Tags: ,
9 декабря 2016 Нет комментариев

DaData.ru
Подключение и простой поиск:

<html>
<head>
	<link href="https://cdn.jsdelivr.net/jquery.suggestions/16.8/css/suggestions.css" type="text/css" rel="stylesheet"/>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
	<!--[if lt IE 10]>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
	<![endif]-->
	<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.suggestions/16.8/js/jquery.suggestions.min.js"></script>
</head>
<body>
	<input id="party" name="party" type="text" size="100"/>
	<script type="text/javascript">
		$("#party").suggestions({
			serviceUrl:"https://suggestions.dadata.ru/suggestions/api/4_1/rs",
			token:"---",
			type:"PARTY",
			count:5,
			onSelect:function(suggestion){
				console.log(suggestion);
			}
		});
	</script>
</body>
</html>

Разложить организацию по полям:

<html>
<head>
	<link href="https://cdn.jsdelivr.net/jquery.suggestions/16.8/css/suggestions.css" type="text/css" rel="stylesheet"/>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
	<!--[if lt IE 10]>
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
	<![endif]-->
	<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery.suggestions/16.8/js/jquery.suggestions.min.js"></script>
</head>
<body>
	<section class="container">
		<h1>Подсказки по организациям и ИП</h1>
		<input id="party" name="party" type="text" placeholder="Введите название, ИНН, ОГРН или адрес организации"/>
	</section>
	<section class="result">
		<p id="type"></p>
		<div class="row">
			<label>Краткое наименование</label>
			<input id="name_short"/>
		</div>
		<div class="row">
			<label>Полное наименование</label>
			<input id="name_full"/>
		</div>
		<div class="row">
			<label>ИНН / КПП</label>
			<input id="inn_kpp"/>
		</div>
		<div class="row">
			<label>Адрес</label>
			<input id="address"/>
		</div>
	</section>
	<script>
		function join(arr){
			var separator=arguments.length>1?arguments[1]:", ";
			return arr.filter(function(n){return n}).join(separator);
		}
		function typeDescription(type){
			var TYPES={
				'INDIVIDUAL':'Индивидуальный предприниматель',
				'LEGAL':'Организация'
			}
			return TYPES[type];
		}
		function showSuggestion(suggestion){
			console.log(suggestion);
			var data=suggestion.data;
			if(!data)return;
			$("#type").text(
				typeDescription(data.type)+" ("+data.type+")"
			);
			if(data.name)$("#name_short").val(join([data.opf&&data.opf.short||"",data.name.short||data.name.full]," "));
			if(data.name&&data.name.full)$("#name_full").val(join([data.opf&&data.opf.full||"",data.name.full]," "));
			$("#inn_kpp").val(join([data.inn, data.kpp]," / "));
			if(data.address)$("#address").val(data.address.value);
		}
		$("#party").suggestions({
			serviceUrl:"https://suggestions.dadata.ru/suggestions/api/4_1/rs",
			token:"---",
			type:"PARTY",
			count:5,
			onSelect:showSuggestion
		});
	</script>
</body>
</html>

Подробнее:
Подключение: https://dadata.ru/suggestions/usage/#party
REST API: https://dadata.ru/api/suggest/#request-party
Как разложить компанию по полям? Наименование, ИНН, КПП, адрес? http://codepen.io/dadata/pen/Gdakz?editors=1010

Еще по теме:
https://www.nalog.ru/rn77/service/egrip2/
http://sc-kontur.ru/focus/focus_api

Categories: Web Tags:
24 ноября 2016 Нет комментариев
function delete_cookie(name){
	document.cookie=name+'=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

или более сложный вариант с возможностью создания и чтения cookie, если это нужно:

function createCookie(name,value,days){
	if(days){
		var date=new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires="; expires="+date.toGMTString();
	}
	else var expires="";
	document.cookie=name+"="+value+expires+"; path=/";
}
function readCookie(name){
	var nameEQ=name+"=";
	var ca=document.cookie.split(';');
	for(var i=0;i<ca.length;i++){
		var c=ca[i];
		while(c.charAt(0)==' ')c=c.substring(1,c.length);
		if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name){
	createCookie(name,"",-1);
}

http://stackoverflow.com/questions/2144386/javascript-delete-cookie

Categories: Javascript Tags: