jquery-form-validator-rails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +17 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +51 -0
- data/Rakefile +1 -0
- data/app/assets/javascripts/date.js +1 -0
- data/app/assets/javascripts/file.js +1 -0
- data/app/assets/javascripts/html5.js +1 -0
- data/app/assets/javascripts/jquery.form-validator.js +1681 -0
- data/app/assets/javascripts/location.js +1 -0
- data/app/assets/javascripts/security.dev.js +442 -0
- data/app/assets/javascripts/security.js +1 -0
- data/app/assets/javascripts/sweden.dev.js +210 -0
- data/app/assets/javascripts/sweden.js +1 -0
- data/app/assets/javascripts/uk.dev.js +85 -0
- data/app/assets/javascripts/uk.js +1 -0
- data/jquery-form-validator.gemspec +28 -0
- data/lib/jquery-form-validator-rails.rb +1 -0
- data/lib/jquery/form/validator/rails.rb +11 -0
- data/lib/jquery/form/validator/rails/engine.rb +10 -0
- data/lib/jquery/form/validator/rails/version.rb +9 -0
- metadata +119 -0
@@ -0,0 +1 @@
|
|
1
|
+
(function($,window){$.formUtils.addValidator({name:"swesec",validatorFunction:function(securityNumber,$input){var year,month,day,ssnParts;if($input.valAttr("use-hyphen")){ssnParts=securityNumber.split("-");if(ssnParts.length!=2){return false}securityNumber=ssnParts.join("")}if(!securityNumber.match(/^(\d{4})(\d{2})(\d{2})(\d{4})$/)){return false}year=RegExp.$1;month=$.formUtils.parseDateInt(RegExp.$2);day=$.formUtils.parseDateInt(RegExp.$3);window.ssnGender=parseInt(RegExp.$4.substring(2,3))%2===0?"female":"male";var months=new Array(31,28,31,30,31,30,31,31,30,31,30,31);if(year%400===0||year%4===0&&year%100!==0){months[1]=29}if(month<1||month>12||day<1||day>months[month-1]){return false}securityNumber=securityNumber.substring(2,securityNumber.length);var check="";for(var i=0;i<securityNumber.length;i++){check+=((i+1)%2+1)*securityNumber.substring(i,i+1)}var checksum=0;for(i=0;i<check.length;i++){checksum+=parseInt(check.substring(i,i+1),10)}return checksum%10===0},errorMessage:"",errorMessageKey:"badSecurityNumber"});$.formUtils.addValidator({name:"swecounty",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.counties)==-1){if(str.substr(-3).toLocaleLowerCase()!="län"){return $.inArray(str+"s län",this.counties)>-1}return false}else return true},errorMessage:"",errorMessageKey:"badCustomVal",counties:["stockholms län","uppsala län","södermanlands län","östergötlands län","jönköpings län","kronobergs län","kalmar län","gotlands län","blekinge län","skåne län","hallands län","västra götalands län","värmlands län","örebro län","västmanlands län","dalarnas län","gävleborgs län","västernorrlands län","jämtlands län","västerbottens län","norrbottens län"]});$.formUtils.addValidator({name:"swemunicipality",validatorFunction:function(str){str=str.toLowerCase();if($.inArray(str,this.municipalities)==-1){if(str.substr(-8)=="s kommun"){if($.inArray(str.substr(0,str.length-8),this.municipalities)>-1)return true}if(str.substr(-7)==" kommun"){return $.inArray(str.substr(0,str.length-7),this.municipalities)>-1}return false}else return true},errorMessage:"",errorMessageKey:"badCustomVal",municipalities:["ale","alingsås","alvesta","aneby","arboga","arjeplog","arvidsjaur","arvika","askersund","avesta","bengtsfors","berg","bjurholm","bjuv","boden","bollebygd","bollnäs","borgholm","borlänge","borås","botkyrka","boxholm","bromölla","bräcke","burlöv","båstad","dals-ed","danderyd","degerfors","dorotea","eda","ekerö","eksjö","emmaboda","enköpings","eskilstuna","eslövs","essunga","fagersta","falkenberg","falköping","falu","filipstad","finspång","flen","forshaga","färgelanda","gagnef","gislaved","gnesta","gnosjö","gotland","grum","grästorp","gullspång","gällivare","gävle","göteborg","götene","habo","hagfor","hallsberg","hallstahammar","halmstad","hammarö","haninge","haparanda","heby","hedemora","helsingborg","herrljunga","hjo","hofor","huddinge","hudiksvall","hultsfred","hylte","håbo","hällefor","härjedalen","härnösand","härryda","hässleholm","höganäs","högsby","hörby","höör","jokkmokk","järfälla","jönköping","kalix","kalmar","karlsborg","karlshamn","karlskoga","karlskrona","karlstad","katrineholm","kil","kinda","kiruna","klippan","knivsta","kramfors","kristianstad","kristinehamn","krokoms","kumla","kungsbacka","kungsör","kungälv","kävlinge","köping","laholm","landskrona","laxå","lekeberg","leksand","lerum","lessebo","lidingö","lidköping","lilla edets","lindesbergs","linköpings","ljungby","ljusdals","ljusnarsbergs","lomma","ludvika","luleå","lunds","lycksele","lysekil","malmö","malung-sälen","malå","mariestad","marks","markaryd","mellerud","mjölby","mora","motala","mullsjö","munkedal","munkfors","mölndal","mönsterås","mörbylånga","nacka","nora","norberg","nordanstig","nordmaling","norrköping","norrtälje","norsjö","nybro","nykvarn","nyköping","nynäshamn","nässjö","ockelbo","olofström","orsa","orust","osby","oskarshamn","ovanåker","oxelösund","pajala","partille","perstorp","piteå","ragunda","robertsfors","ronneby","rättvik","sala","salem","sandviken","sigtuna","simrishamn","sjöbo","skara","skellefteå","skinnskatteberg","skurup","skövde","smedjebacken","sollefteå","sollentuna","solna","sorsele","sotenäs","staffanstorp","stenungsund","stockholm","storfors","storuman","strängnäs","strömstad","strömsund","sundbyberg","sundsvall","sunne","surahammar","svalöv","svedala","svenljunga","säffle","säter","sävsjö","söderhamns","söderköping","södertälje","sölvesborg","tanum","tibro","tidaholm","tierp","timrå","tingsryd","tjörn","tomelilla","torsby","torså","tranemo","tranå","trelleborg","trollhättan","trosa","tyresö","täby","töreboda","uddevalla","ulricehamns","umeå","upplands väsby","upplands-bro","uppsala","uppvidinge","vadstena","vaggeryd","valdemarsvik","vallentuna","vansbro","vara","varberg","vaxholm","vellinge","vetlanda","vilhelmina","vimmerby","vindeln","vingåker","vårgårda","vänersborg","vännäs","värmdö","värnamo","västervik","västerås","växjö","ydre","ystad","åmål","ånge","åre","årjäng","åsele","åstorp","åtvidaberg","älmhult","älvdalen","älvkarleby","älvsbyn","ängelholm","öckerö","ödeshög","örebro","örkelljunga","örnsköldsvik","östersund","österåker","östhammar","östra göinge","överkalix","övertorneå"]});$.formUtils.addValidator({name:"swephone",validatorFunction:function(tele){var numPlus=tele.match(/\+/g);var numHifen=tele.match(/-/g);if(numPlus!==null&&numPlus.length>1||numHifen!==null&&numHifen.length>1){return false}if(numPlus!==null&&tele.indexOf("+")!==0){return false}tele=tele.replace(/([-|\+])/g,"");return tele.length>8&&tele.match(/[^0-9]/g)===null},errorMessage:"",errorMessageKey:"badTelephone"});$.formUtils.addValidator({name:"swemobile",validatorFunction:function(number){if(!$.formUtils.validators.validate_swephone.validatorFunction(number)){return false}number=number.replace(/[^0-9]/g,"");var begin=number.substring(0,3);if(number.length!=10&&begin!=="467"){return false}else if(number.length!=11&&begin==="467"){return false}return/07[0-9{1}]/.test(begin)||begin==="467"},errorMessage:"",errorMessageKey:"badTelephone"});var _makeSortedList=function(listItems){var newList=[];$.each(listItems,function(i,v){newList.push(v.substr(0,1).toUpperCase()+v.substr(1,v.length))});newList.sort();return newList};$.fn.suggestSwedishCounty=function(settings){var counties=_makeSortedList($.formUtils.validators.validate_swecounty.counties);return $.formUtils.suggest(this,counties,settings)};$.fn.suggestSwedishMunicipality=function(settings){var municipalities=_makeSortedList($.formUtils.validators.validate_swemunicipality.municipalities);return $.formUtils.suggest(this,municipalities,settings)}})(jQuery,window);
|
@@ -0,0 +1,85 @@
|
|
1
|
+
/**
|
2
|
+
* jQuery Form Validator Module: Security
|
3
|
+
* ------------------------------------------
|
4
|
+
* Created by Victor Jonsson <http://www.victorjonsson.se>
|
5
|
+
*
|
6
|
+
* This form validation module adds validators typically used on
|
7
|
+
* websites in the UK. This module adds the following validators:
|
8
|
+
* - ukvatnumber
|
9
|
+
*
|
10
|
+
* @website http://formvalidator.net/#uk-validators
|
11
|
+
* @license Dual licensed under the MIT or GPL Version 2 licenses
|
12
|
+
* @version 2.1.66
|
13
|
+
*/
|
14
|
+
$.formUtils.addValidator({
|
15
|
+
name : 'ukvatnumber',
|
16
|
+
validatorFunction : function(number) {
|
17
|
+
|
18
|
+
// Code Adapted from http://www.codingforums.com/showthread.php?t=211967
|
19
|
+
// TODO: Extra Checking for other VAT Numbers (Other countries and UK Government/Health Authorities)
|
20
|
+
|
21
|
+
number = number.replace(/[^0-9]/g, '');
|
22
|
+
|
23
|
+
//Check Length
|
24
|
+
if(number.length < 9) {
|
25
|
+
return false;
|
26
|
+
}
|
27
|
+
|
28
|
+
var valid = false;
|
29
|
+
|
30
|
+
var VATsplit = [];
|
31
|
+
VATsplit = number.split("");
|
32
|
+
|
33
|
+
var checkDigits = Number(VATsplit[7] + VATsplit[8]); // two final digits as a number
|
34
|
+
|
35
|
+
var firstDigit = VATsplit[0];
|
36
|
+
var secondDigit = VATsplit[1];
|
37
|
+
if ((firstDigit == 0) && (secondDigit >0)) {
|
38
|
+
return false;
|
39
|
+
}
|
40
|
+
|
41
|
+
var total = 0;
|
42
|
+
for (var i=0; i<7; i++) { // first 7 digits
|
43
|
+
total += VATsplit[i]* (8-i); // sum weighted cumulative total
|
44
|
+
}
|
45
|
+
|
46
|
+
var c = 0;
|
47
|
+
var i = 0;
|
48
|
+
|
49
|
+
for (var m = 8; m>=2; m--) {
|
50
|
+
c += VATsplit[i]* m;
|
51
|
+
i++;
|
52
|
+
}
|
53
|
+
|
54
|
+
// Traditional Algorithm for VAT numbers issued before 2010
|
55
|
+
|
56
|
+
while (total > 0) {
|
57
|
+
total -= 97; // deduct 97 repeatedly until total is negative
|
58
|
+
}
|
59
|
+
total = Math.abs(total); // make positive
|
60
|
+
|
61
|
+
if (checkDigits == total) {
|
62
|
+
valid = true;
|
63
|
+
}
|
64
|
+
|
65
|
+
// If not valid try the new method (introduced November 2009) by subtracting 55 from the mod 97 check digit if we can - else add 42
|
66
|
+
|
67
|
+
if (!valid) {
|
68
|
+
total = total%97 // modulus 97
|
69
|
+
|
70
|
+
if (total >= 55) {
|
71
|
+
total = total - 55
|
72
|
+
} else {
|
73
|
+
total = total + 42
|
74
|
+
}
|
75
|
+
|
76
|
+
if (total == checkDigits) {
|
77
|
+
valid = true;
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
return valid;
|
82
|
+
},
|
83
|
+
errorMessage : '',
|
84
|
+
errorMessageKey: 'badUKVatAnswer'
|
85
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
$.formUtils.addValidator({name:"ukvatnumber",validatorFunction:function(number){number=number.replace(/[^0-9]/g,"");if(number.length<9){return false}var valid=false;var VATsplit=[];VATsplit=number.split("");var checkDigits=Number(VATsplit[7]+VATsplit[8]);var firstDigit=VATsplit[0];var secondDigit=VATsplit[1];if(firstDigit==0&&secondDigit>0){return false}var total=0;for(var i=0;i<7;i++){total+=VATsplit[i]*(8-i)}var c=0;var i=0;for(var m=8;m>=2;m--){c+=VATsplit[i]*m;i++}while(total>0){total-=97}total=Math.abs(total);if(checkDigits==total){valid=true}if(!valid){total=total%97;if(total>=55){total=total-55}else{total=total+42}if(total==checkDigits){valid=true}}return valid},errorMessage:"",errorMessageKey:"badUKVatAnswer"});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
#encoding: utf-8
|
3
|
+
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
lib = File.expand_path('../lib', __FILE__)
|
6
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
7
|
+
require 'jquery/form/validator/rails/version'
|
8
|
+
|
9
|
+
Gem::Specification.new do |gem|
|
10
|
+
gem.name = "jquery-form-validator-rails"
|
11
|
+
gem.version = Jquery::Form::Validator::Rails::VERSION
|
12
|
+
gem.authors = ["Gustaf Lindqvist"]
|
13
|
+
gem.email = ["gustaf.lindqvist@gmail.com"]
|
14
|
+
gem.description = %q{Integrate the jQuery Form Validator plugin into the Rails asset pipeline}
|
15
|
+
gem.summary = %q{jQuery Form Validator is a feature rich jQuery plugin that makes it easy to validate user input while keeping your HTML markup clean from javascript code. Even though this plugin has a wide range of validation functions it's designed to require as little jQuery bandwidth as possible. This is achieved by grouping together validation functions in "modules", making it possible for the programmer to load only
|
16
|
+
those functions that's needed to validate a particular form.}
|
17
|
+
gem.homepage = "https://github.com/gustaflindqvist/jquery-form-validator-rails"
|
18
|
+
gem.license = "MIT"
|
19
|
+
gem.files = `git ls-files`.split($/)
|
20
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
21
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
22
|
+
gem.require_paths = ["lib"]
|
23
|
+
|
24
|
+
gem.add_dependency "thor", "~> 0.14"
|
25
|
+
gem.add_dependency "railties", ">= 3.2", "< 5.0"
|
26
|
+
|
27
|
+
gem.add_development_dependency "bundler", "~> 1.0"
|
28
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "jquery/form/validator/rails"
|
metadata
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jquery-form-validator-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Gustaf Lindqvist
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-06-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.14'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: railties
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.2'
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '5.0'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '3.2'
|
44
|
+
- - <
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '5.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.0'
|
61
|
+
description: Integrate the jQuery Form Validator plugin into the Rails asset pipeline
|
62
|
+
email:
|
63
|
+
- gustaf.lindqvist@gmail.com
|
64
|
+
executables: []
|
65
|
+
extensions: []
|
66
|
+
extra_rdoc_files: []
|
67
|
+
files:
|
68
|
+
- .gitignore
|
69
|
+
- CHANGELOG.md
|
70
|
+
- Gemfile
|
71
|
+
- LICENSE
|
72
|
+
- README.md
|
73
|
+
- Rakefile
|
74
|
+
- app/assets/javascripts/date.js
|
75
|
+
- app/assets/javascripts/file.js
|
76
|
+
- app/assets/javascripts/html5.js
|
77
|
+
- app/assets/javascripts/jquery.form-validator.js
|
78
|
+
- app/assets/javascripts/location.js
|
79
|
+
- app/assets/javascripts/security.dev.js
|
80
|
+
- app/assets/javascripts/security.js
|
81
|
+
- app/assets/javascripts/sweden.dev.js
|
82
|
+
- app/assets/javascripts/sweden.js
|
83
|
+
- app/assets/javascripts/uk.dev.js
|
84
|
+
- app/assets/javascripts/uk.js
|
85
|
+
- jquery-form-validator.gemspec
|
86
|
+
- lib/jquery-form-validator-rails.rb
|
87
|
+
- lib/jquery/form/validator/rails.rb
|
88
|
+
- lib/jquery/form/validator/rails/engine.rb
|
89
|
+
- lib/jquery/form/validator/rails/version.rb
|
90
|
+
homepage: https://github.com/gustaflindqvist/jquery-form-validator-rails
|
91
|
+
licenses:
|
92
|
+
- MIT
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 2.3.0
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
113
|
+
summary: jQuery Form Validator is a feature rich jQuery plugin that makes it easy
|
114
|
+
to validate user input while keeping your HTML markup clean from javascript code.
|
115
|
+
Even though this plugin has a wide range of validation functions it's designed to
|
116
|
+
require as little jQuery bandwidth as possible. This is achieved by grouping together
|
117
|
+
validation functions in "modules", making it possible for the programmer to load
|
118
|
+
only those functions that's needed to validate a particular form.
|
119
|
+
test_files: []
|