$('select option:not(:selected)').attr('disabled',true);
Архив
Только воскресенья:
$(".datepicker").datepicker({ beforeShowDay:function(date){return[date.getDay()!=0,""]}, });
Субботы и воскресенья:
$(".datepicker").datepicker({ beforeShowDay:function(date){return[date.getDay()!=0&&date.getDay()!=6,""]}, });
Определение расширения файла:
$('input[type=file]').live('change',function(){ var ext=$(this).val().split('.').pop(); alert(ext); });
Проверка на допустимость типа файла для загрузки:
$('input[type=file]').live('change',function(){ var ext=$(this).val().split('.').pop(); var allow=new Array('7z','bin','bz','bz2','doc','docx','gif','gz','htm','html','ico','jpeg','jpg','mov','mp3','mpeg','mpg','pdf','php','png','ppt','pptx','rar','rtf','swf','tar','txt','wav','xls','xlsx','zip'); if($.inArray(ext,allow)===-1){ $(this).val(''); alert('Недопустимый тип файла'); } });
Округлить чисто до кратного 3 в большую сторону, т.е. 9=9 10=12 11=12 12=12 13=15
width=Math.ceil(width/3)*3;
Последний рабочий вариант:
function validateVin(vin){ var re=new RegExp("^[A-HJ-NPR-Z\\d]{13}\\d{4}$","i"); return vin.match(re); }
Остальные промежуточные относительно рабочие:
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; } });
Второе можно попробовать сделать одним регулярным выражением. Или исправить что-то в первом…
Обновлено 2:
В примерах выше, 9 символ обязательно должен быть либо X либо цифра, но на практике встречаются vin с другими символами. Поэтому можно упростить:
function validateVin(vin){ var re=new RegExp("^[A-HJ-NPR-Z\\d]{13}\\d{4}$","i"); return vin.match(re); }
Еще вариант (на практике не подошел):
valid_vin=function(vin){ no_ioq='[a-hj-npr-z0-9]'; matcher=new RegExp("^"+no_ioq+"{8}[0-9xX]"+no_ioq+"{8}$",'i'); if(vin.match(matcher)==null) return false; return check_digit_check(vin); }; check_digit_check=function(vin){ cleaned_vin=vin.toUpperCase(); letter_map={A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,J:1,K:2,L:3,M:4,N:5,P:7,R:9,S:2,T:3,U:4,V:5,W:6,X:7,Y:8,Z:9,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,0:0}; weights=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2]; products=0; for(var i=0;i<cleaned_vin.length;i++) { products+=letter_map[cleaned_vin[i]]*weights[i]; } check_digit_should_be=products%11; if(check_digit_should_be==10) check_digit_should_be='X'; return check_digit_should_be==cleaned_vin[8]; }
Источники:
http://stackoverflow.com/questions/26407015/javascript-jquery-vin-validator
https://en.wikipedia.org/wiki/Vehicle_identification_number
https://github.com/bradg/vin-js
Например имеем код:
<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 соответственно.
Получить 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; });