├── Rakefile ├── lib ├── jquery-validation-rails.rb └── jquery │ └── validation │ ├── rails │ ├── version.rb │ └── engine.rb │ └── rails.rb ├── Gemfile ├── .gitignore ├── vendor └── assets │ └── javascripts │ ├── jquery.validate.localization │ ├── methods_pt.js │ ├── methods_fi.js │ ├── methods_de.js │ ├── methods_it.js │ ├── methods_es_CL.js │ ├── methods_nl.js │ ├── messages_zh_TW.js │ ├── messages_zh.js │ ├── messages_ko.js │ ├── messages_vi.js │ ├── messages_ja.js │ ├── messages_sk.js │ ├── messages_he.js │ ├── messages_is.js │ ├── messages_no.js │ ├── messages_ar.js │ ├── messages_th.js │ ├── messages_sd.js │ ├── messages_sr.js │ ├── messages_hy_AM.js │ ├── messages_hr.js │ ├── messages_mk.js │ ├── messages_hu.js │ ├── messages_sr_lat.js │ ├── messages_ur.js │ ├── messages_bn_BD.js │ ├── messages_ge.js │ ├── messages_sv.js │ ├── messages_et.js │ ├── messages_si.js │ ├── messages_id.js │ ├── messages_sl.js │ ├── messages_bg.js │ ├── messages_my.js │ ├── messages_cs.js │ ├── messages_lv.js │ ├── messages_lt.js │ ├── messages_ka.js │ ├── messages_eu.js │ ├── messages_tj.js │ ├── messages_ca.js │ ├── messages_uk.js │ ├── messages_kk.js │ ├── messages_fi.js │ ├── messages_it.js │ ├── messages_ru.js │ ├── messages_el.js │ ├── messages_fa.js │ ├── messages_ro.js │ ├── messages_az.js │ ├── messages_es.js │ ├── messages_tr.js │ ├── messages_es_PE.js │ ├── messages_es_AR.js │ ├── messages_pl.js │ ├── messages_gl.js │ ├── messages_pt_PT.js │ ├── messages_da.js │ ├── messages_nl.js │ ├── messages_fr.js │ ├── messages_de.js │ └── messages_pt_BR.js │ └── jquery.validate.js ├── LICENSE ├── jquery-validation-rails.gemspec └── README.md /Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | -------------------------------------------------------------------------------- /lib/jquery-validation-rails.rb: -------------------------------------------------------------------------------- 1 | require "jquery/validation/rails" 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # Specify your gem's dependencies in jquery-validation-rails.gemspec 4 | gemspec 5 | -------------------------------------------------------------------------------- /lib/jquery/validation/rails/version.rb: -------------------------------------------------------------------------------- 1 | module Jquery 2 | module Validation 3 | module Rails 4 | VERSION = '1.19.0'.freeze 5 | end 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /lib/jquery/validation/rails/engine.rb: -------------------------------------------------------------------------------- 1 | module Jquery 2 | module Validation 3 | module Rails 4 | class Engine < ::Rails::Engine 5 | end 6 | end 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /lib/jquery/validation/rails.rb: -------------------------------------------------------------------------------- 1 | require 'jquery/validation/rails/version' 2 | require 'jquery/validation/rails/engine' if ::Rails.version >= "3.1" 3 | 4 | module Jquery 5 | module Validation 6 | module Rails 7 | end 8 | end 9 | end 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | .bundle 4 | .config 5 | .yardoc 6 | Gemfile.lock 7 | InstalledFiles 8 | _yardoc 9 | coverage 10 | doc/ 11 | lib/bundler/man 12 | pkg 13 | rdoc 14 | spec/reports 15 | test/tmp 16 | test/version_tmp 17 | tmp 18 | .DS_Store 19 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_pt.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: PT_BR 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\/\d\d?\/\d\d\d?\d?$/.test( value ); 18 | } 19 | } ); 20 | return $; 21 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_fi.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: FI 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d{1,2}\.\d{1,2}\.\d{4}$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_de.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: DE 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_it.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: IT 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_es_CL.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: ES_CL 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?\-\d\d?\-\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/methods_nl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Localized default methods for the jQuery validation plugin. 13 | * Locale: NL 14 | */ 15 | $.extend( $.validator.methods, { 16 | date: function( value, element ) { 17 | return this.optional( element ) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test( value ); 18 | }, 19 | number: function( value, element ) { 20 | return this.optional( element ) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test( value ); 21 | } 22 | } ); 23 | return $; 24 | })); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Dan Ryan 2 | 3 | jQuery Copyright (c)2012 jQuery Foundation and other contributors 4 | 5 | MIT License 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining 8 | a copy of this software and associated documentation files (the 9 | "Software"), to deal in the Software without restriction, including 10 | without limitation the rights to use, copy, modify, merge, publish, 11 | distribute, sublicense, and/or sell copies of the Software, and to 12 | permit persons to whom the Software is furnished to do so, subject to 13 | the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be 16 | included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_zh_TW.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語) 14 | * Region: TW (Taiwan) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "必須填寫", 18 | remote: "請修正此欄位", 19 | email: "請輸入有效的電子郵件", 20 | url: "請輸入有效的網址", 21 | date: "請輸入有效的日期", 22 | dateISO: "請輸入有效的日期 (YYYY-MM-DD)", 23 | number: "請輸入正確的數值", 24 | digits: "只可輸入數字", 25 | creditcard: "請輸入有效的信用卡號碼", 26 | equalTo: "請重複輸入一次", 27 | extension: "請輸入有效的後綴", 28 | maxlength: $.validator.format( "最多 {0} 個字" ), 29 | minlength: $.validator.format( "最少 {0} 個字" ), 30 | rangelength: $.validator.format( "請輸入長度為 {0} 至 {1} 之間的字串" ), 31 | range: $.validator.format( "請輸入 {0} 至 {1} 之間的數值" ), 32 | max: $.validator.format( "請輸入不大於 {0} 的數值" ), 33 | min: $.validator.format( "請輸入不小於 {0} 的數值" ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_zh.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "这是必填字段", 17 | remote: "请修正此字段", 18 | email: "请输入有效的电子邮件地址", 19 | url: "请输入有效的网址", 20 | date: "请输入有效的日期", 21 | dateISO: "请输入有效的日期 (YYYY-MM-DD)", 22 | number: "请输入有效的数字", 23 | digits: "只能输入数字", 24 | creditcard: "请输入有效的信用卡号码", 25 | equalTo: "你的输入不相同", 26 | extension: "请输入有效的后缀", 27 | maxlength: $.validator.format( "最多可以输入 {0} 个字符" ), 28 | minlength: $.validator.format( "最少要输入 {0} 个字符" ), 29 | rangelength: $.validator.format( "请输入长度在 {0} 到 {1} 之间的字符串" ), 30 | range: $.validator.format( "请输入范围在 {0} 到 {1} 之间的数值" ), 31 | step: $.validator.format( "请输入 {0} 的整数倍值" ), 32 | max: $.validator.format( "请输入不大于 {0} 的数值" ), 33 | min: $.validator.format( "请输入不小于 {0} 的数值" ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ko.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: KO (Korean; 한국어) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "필수 항목입니다.", 17 | remote: "항목을 수정하세요.", 18 | email: "유효하지 않은 E-Mail주소입니다.", 19 | url: "유효하지 않은 URL입니다.", 20 | date: "올바른 날짜를 입력하세요.", 21 | dateISO: "올바른 날짜(ISO)를 입력하세요.", 22 | number: "유효한 숫자가 아닙니다.", 23 | digits: "숫자만 입력 가능합니다.", 24 | creditcard: "신용카드 번호가 바르지 않습니다.", 25 | equalTo: "같은 값을 다시 입력하세요.", 26 | extension: "올바른 확장자가 아닙니다.", 27 | maxlength: $.validator.format( "{0}자를 넘을 수 없습니다. " ), 28 | minlength: $.validator.format( "{0}자 이상 입력하세요." ), 29 | rangelength: $.validator.format( "문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요." ), 30 | range: $.validator.format( "{0} 에서 {1} 사이의 값을 입력하세요." ), 31 | max: $.validator.format( "{0} 이하의 값을 입력하세요." ), 32 | min: $.validator.format( "{0} 이상의 값을 입력하세요." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_vi.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: VI (Vietnamese; Tiếng Việt) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Hãy nhập.", 17 | remote: "Hãy sửa cho đúng.", 18 | email: "Hãy nhập email.", 19 | url: "Hãy nhập URL.", 20 | date: "Hãy nhập ngày.", 21 | dateISO: "Hãy nhập ngày (ISO).", 22 | number: "Hãy nhập số.", 23 | digits: "Hãy nhập chữ số.", 24 | creditcard: "Hãy nhập số thẻ tín dụng.", 25 | equalTo: "Hãy nhập thêm lần nữa.", 26 | extension: "Phần mở rộng không đúng.", 27 | maxlength: $.validator.format( "Hãy nhập từ {0} kí tự trở xuống." ), 28 | minlength: $.validator.format( "Hãy nhập từ {0} kí tự trở lên." ), 29 | rangelength: $.validator.format( "Hãy nhập từ {0} đến {1} kí tự." ), 30 | range: $.validator.format( "Hãy nhập từ {0} đến {1}." ), 31 | max: $.validator.format( "Hãy nhập từ {0} trở xuống." ), 32 | min: $.validator.format( "Hãy nhập từ {0} trở lên." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ja.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: JA (Japanese; 日本語) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "このフィールドは必須です。", 17 | remote: "このフィールドを修正してください。", 18 | email: "有効なEメールアドレスを入力してください。", 19 | url: "有効なURLを入力してください。", 20 | date: "有効な日付を入力してください。", 21 | dateISO: "有効な日付(ISO)を入力してください。", 22 | number: "有効な数字を入力してください。", 23 | digits: "数字のみを入力してください。", 24 | creditcard: "有効なクレジットカード番号を入力してください。", 25 | equalTo: "同じ値をもう一度入力してください。", 26 | extension: "有効な拡張子を含む値を入力してください。", 27 | maxlength: $.validator.format( "{0} 文字以内で入力してください。" ), 28 | minlength: $.validator.format( "{0} 文字以上で入力してください。" ), 29 | rangelength: $.validator.format( "{0} 文字から {1} 文字までの値を入力してください。" ), 30 | range: $.validator.format( "{0} から {1} までの値を入力してください。" ), 31 | step: $.validator.format( "{0} の倍数を入力してください。" ), 32 | max: $.validator.format( "{0} 以下の値を入力してください。" ), 33 | min: $.validator.format( "{0} 以上の値を入力してください。" ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SK (Slovak; slovenčina, slovenský jazyk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Povinné zadať.", 17 | maxlength: $.validator.format( "Maximálne {0} znakov." ), 18 | minlength: $.validator.format( "Minimálne {0} znakov." ), 19 | rangelength: $.validator.format( "Minimálne {0} a maximálne {1} znakov." ), 20 | email: "E-mailová adresa musí byť platná.", 21 | url: "URL musí byť platná.", 22 | date: "Musí byť dátum.", 23 | number: "Musí byť číslo.", 24 | digits: "Môže obsahovať iba číslice.", 25 | equalTo: "Dve hodnoty sa musia rovnať.", 26 | range: $.validator.format( "Musí byť medzi {0} a {1}." ), 27 | max: $.validator.format( "Nemôže byť viac ako {0}." ), 28 | min: $.validator.format( "Nemôže byť menej ako {0}." ), 29 | creditcard: "Číslo platobnej karty musí byť platné.", 30 | step: $.validator.format( "Musí byť násobkom čísla {0}." ) 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_he.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HE (Hebrew; עברית) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "השדה הזה הינו שדה חובה", 17 | remote: "נא לתקן שדה זה", 18 | email: "נא למלא כתובת דוא\"ל חוקית", 19 | url: "נא למלא כתובת אינטרנט חוקית", 20 | date: "נא למלא תאריך חוקי", 21 | dateISO: "נא למלא תאריך חוקי (ISO)", 22 | number: "נא למלא מספר", 23 | digits: "נא למלא רק מספרים", 24 | creditcard: "נא למלא מספר כרטיס אשראי חוקי", 25 | equalTo: "נא למלא את אותו ערך שוב", 26 | extension: "נא למלא ערך עם סיומת חוקית", 27 | maxlength: $.validator.format( ".נא לא למלא יותר מ- {0} תווים" ), 28 | minlength: $.validator.format( "נא למלא לפחות {0} תווים" ), 29 | rangelength: $.validator.format( "נא למלא ערך בין {0} ל- {1} תווים" ), 30 | range: $.validator.format( "נא למלא ערך בין {0} ל- {1}" ), 31 | max: $.validator.format( "נא למלא ערך קטן או שווה ל- {0}" ), 32 | min: $.validator.format( "נא למלא ערך גדול או שווה ל- {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_is.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: IS (Icelandic; íslenska) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Þessi reitur er nauðsynlegur.", 17 | remote: "Lagaðu þennan reit.", 18 | maxlength: $.validator.format( "Sláðu inn mest {0} stafi." ), 19 | minlength: $.validator.format( "Sláðu inn minnst {0} stafi." ), 20 | rangelength: $.validator.format( "Sláðu inn minnst {0} og mest {1} stafi." ), 21 | email: "Sláðu inn gilt netfang.", 22 | url: "Sláðu inn gilda vefslóð.", 23 | date: "Sláðu inn gilda dagsetningu.", 24 | number: "Sláðu inn tölu.", 25 | digits: "Sláðu inn tölustafi eingöngu.", 26 | equalTo: "Sláðu sama gildi inn aftur.", 27 | range: $.validator.format( "Sláðu inn gildi milli {0} og {1}." ), 28 | max: $.validator.format( "Sláðu inn gildi sem er minna en eða jafnt og {0}." ), 29 | min: $.validator.format( "Sláðu inn gildi sem er stærra en eða jafnt og {0}." ), 30 | creditcard: "Sláðu inn gilt greiðslukortanúmer." 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /jquery-validation-rails.gemspec: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | # -*- encoding: utf-8 -*- 4 | lib = File.expand_path('../lib', __FILE__) 5 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 6 | require 'jquery/validation/rails/version' 7 | 8 | Gem::Specification.new do |gem| 9 | gem.name = 'jquery-validation-rails' 10 | gem.version = Jquery::Validation::Rails::VERSION 11 | gem.authors = ['Curt Howard, Dan Ryan'] 12 | gem.email = ['curt@meows.us'] 13 | gem.description = 'Integrate the jQuery Validation plugin into the Rails asset pipeline' 14 | gem.summary = 'This jQuery plugin makes simple clientside form validation trivial, while offering lots of option for customization. That makes a good choice if you’re building something new from scratch, but also when you’re trying to integrate it into an existing application with lots of existing markup. The plugin comes bundled with a useful set of validation methods, including URL and email validation, while providing an API to write your own methods. All bundled methods come with default error messages in english and translations into 36 locales.' 15 | gem.homepage = 'https://github.com/meowsus/jquery-validation-rails' 16 | gem.license = 'MIT' 17 | gem.files = `git ls-files`.split("\n") 18 | gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) } 19 | gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) 20 | gem.require_paths = ['lib'] 21 | end 22 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_no.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: NO (Norwegian; Norsk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Angi en verdi.", 17 | remote: "Ugyldig verdi.", 18 | email: "Angi en gyldig epostadresse.", 19 | url: "Angi en gyldig URL.", 20 | date: "Angi en gyldig dato.", 21 | dateISO: "Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).", 22 | number: "Angi et gyldig tall.", 23 | digits: "Skriv kun tall.", 24 | equalTo: "Skriv samme verdi igjen.", 25 | maxlength: $.validator.format( "Maksimalt {0} tegn." ), 26 | minlength: $.validator.format( "Minimum {0} tegn." ), 27 | rangelength: $.validator.format( "Angi minimum {0} og maksimum {1} tegn." ), 28 | range: $.validator.format( "Angi en verdi mellom {0} og {1}." ), 29 | max: $.validator.format( "Angi en verdi som er mindre eller lik {0}." ), 30 | min: $.validator.format( "Angi en verdi som er større eller lik {0}." ), 31 | step: $.validator.format( "Angi en verdi ganger {0}." ), 32 | creditcard: "Angi et gyldig kredittkortnummer." 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ar.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: AR (Arabic; العربية) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "هذا الحقل إلزامي", 17 | remote: "يرجى تصحيح هذا الحقل للمتابعة", 18 | email: "رجاء إدخال عنوان بريد إلكتروني صحيح", 19 | url: "رجاء إدخال عنوان موقع إلكتروني صحيح", 20 | date: "رجاء إدخال تاريخ صحيح", 21 | dateISO: "رجاء إدخال تاريخ صحيح (ISO)", 22 | number: "رجاء إدخال عدد بطريقة صحيحة", 23 | digits: "رجاء إدخال أرقام فقط", 24 | creditcard: "رجاء إدخال رقم بطاقة ائتمان صحيح", 25 | equalTo: "رجاء إدخال نفس القيمة", 26 | extension: "رجاء إدخال ملف بامتداد موافق عليه", 27 | maxlength: $.validator.format( "الحد الأقصى لعدد الحروف هو {0}" ), 28 | minlength: $.validator.format( "الحد الأدنى لعدد الحروف هو {0}" ), 29 | rangelength: $.validator.format( "عدد الحروف يجب أن يكون بين {0} و {1}" ), 30 | range: $.validator.format( "رجاء إدخال عدد قيمته بين {0} و {1}" ), 31 | max: $.validator.format( "رجاء إدخال عدد أقل من أو يساوي {0}" ), 32 | min: $.validator.format( "رجاء إدخال عدد أكبر من أو يساوي {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_th.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: TH (Thai; ไทย) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "โปรดระบุ", 17 | remote: "โปรดแก้ไขให้ถูกต้อง", 18 | email: "โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง", 19 | url: "โปรดระบุ URL ที่ถูกต้อง", 20 | date: "โปรดระบุวันที่ ที่ถูกต้อง", 21 | dateISO: "โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).", 22 | number: "โปรดระบุทศนิยมที่ถูกต้อง", 23 | digits: "โปรดระบุจำนวนเต็มที่ถูกต้อง", 24 | creditcard: "โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง", 25 | equalTo: "โปรดระบุค่าเดิมอีกครั้ง", 26 | extension: "โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง", 27 | maxlength: $.validator.format( "โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ" ), 28 | minlength: $.validator.format( "โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ" ), 29 | rangelength: $.validator.format( "โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ" ), 30 | range: $.validator.format( "โปรดระบุค่าระหว่าง {0} และ {1}" ), 31 | max: $.validator.format( "โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}" ), 32 | min: $.validator.format( "โปรดระบุค่ามากกว่าหรือเท่ากับ {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sd.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SD (Sindhi; سنڌي) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "هنن جاين جي ضرورت آهي", 17 | remote: "هنن جاين جي ضرورت آهي", 18 | email: "لکيل اي ميل غلط آهي", 19 | url: "لکيل ايڊريس غلط آهي", 20 | date: "لکيل تاريخ غلط آهي", 21 | dateISO: "جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ", 22 | number: "لکيل انگ صحيح ناهي", 23 | digits: "رڳو انگ داخل ڪري سگهجي ٿو", 24 | creditcard: "لکيل ڪارڊ نمبر صحيح نه آهي", 25 | equalTo: "داخل ٿيل ڀيٽ صحيح نه آهي", 26 | extension: "لکيل غلط آهي", 27 | maxlength: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ), 28 | minlength: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ), 29 | rangelength: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ), 30 | range: $.validator.format( "داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي" ), 31 | max: $.validator.format( "وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي" ), 32 | min: $.validator.format( "گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SR (Serbian; српски језик) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Поље је обавезно.", 17 | remote: "Средите ово поље.", 18 | email: "Унесите исправну и-мејл адресу.", 19 | url: "Унесите исправан URL.", 20 | date: "Унесите исправан датум.", 21 | dateISO: "Унесите исправан датум (ISO).", 22 | number: "Унесите исправан број.", 23 | digits: "Унесите само цифе.", 24 | creditcard: "Унесите исправан број кредитне картице.", 25 | equalTo: "Унесите исту вредност поново.", 26 | extension: "Унесите вредност са одговарајућом екстензијом.", 27 | maxlength: $.validator.format( "Унесите мање од {0} карактера." ), 28 | minlength: $.validator.format( "Унесите барем {0} карактера." ), 29 | rangelength: $.validator.format( "Унесите вредност дугачку између {0} и {1} карактера." ), 30 | range: $.validator.format( "Унесите вредност између {0} и {1}." ), 31 | max: $.validator.format( "Унесите вредност мању или једнаку {0}." ), 32 | min: $.validator.format( "Унесите вредност већу или једнаку {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_hy_AM.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HY_AM (Armenian; հայերեն լեզու) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Պարտադիր լրացման դաշտ", 17 | remote: "Ներմուծեք ճիշտ արժեքը", 18 | email: "Ներմուծեք վավեր էլեկտրոնային փոստի հասցե", 19 | url: "Ներմուծեք վավեր URL", 20 | date: "Ներմուծեք վավեր ամսաթիվ", 21 | dateISO: "Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։", 22 | number: "Ներմուծեք թիվ", 23 | digits: "Ներմուծեք միայն թվեր", 24 | creditcard: "Ներմուծեք ճիշտ բանկային քարտի համար", 25 | equalTo: "Ներմուծեք միևնուն արժեքը ևս մեկ անգամ", 26 | extension: "Ընտրեք ճիշտ ընդլանումով ֆայլ", 27 | maxlength: $.validator.format( "Ներմուծեք ոչ ավել քան {0} նիշ" ), 28 | minlength: $.validator.format( "Ներմուծեք ոչ պակաս քան {0} նիշ" ), 29 | rangelength: $.validator.format( "Ներմուծեք {0}֊ից {1} երկարությամբ արժեք" ), 30 | range: $.validator.format( "Ներմուծեք թիվ {0}֊ից {1} միջակայքում" ), 31 | max: $.validator.format( "Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին" ), 32 | min: $.validator.format( "Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Jquery::Validation::Rails 2 | 3 | [jQuery Validation](https://jqueryvalidation.org/) for the Rails Asset Pipeline. 4 | 5 | 6 | ## Installing this Gem 7 | 8 | Add the following line to your project's `Gemfile`: 9 | ```rb 10 | gem 'jquery-validation-rails' 11 | ``` 12 | 13 | Run the following in your terminal: 14 | ```bash 15 | cd ~/path/to/my/project 16 | bundle install 17 | ``` 18 | 19 | 20 | ## Requiring the Assets 21 | 22 | Add, at least, the following to your JavaScript [manifest file](http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives): 23 | ```js 24 | //= require jquery.validate 25 | ``` 26 | 27 | If you need the `accept`, `creditcard`, `extension`, `phoneUS`, or `require_from_group` [additional methods](https://jqueryvalidation.org/documentation/#link-list-of-built-in-validation-methods), add this line too: 28 | ```js 29 | //= require jquery.validate.additional-methods 30 | ``` 31 | 32 | If you'd like to take advantage of the library's built-in translations, add the ones you need: 33 | ```js 34 | //= require jquery.validate.localization/messages_es 35 | //= require jquery.validate.localization/messages_de 36 | ``` 37 | 38 | Or require all of them: 39 | ```js 40 | //= require_tree jquery.validate.localization 41 | ``` 42 | 43 | 44 | ## Contributing 45 | 46 | 1. Fork it 47 | 2. Create your feature branch (`git checkout -b my-new-feature`) 48 | 3. Commit your changes (`git commit -am 'Add some feature'`) 49 | 4. Push to the branch (`git push origin my-new-feature`) 50 | 5. Create new Pull Request 51 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_hr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HR (Croatia; hrvatski jezik) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Ovo polje je obavezno.", 17 | remote: "Ovo polje treba popraviti.", 18 | email: "Unesite ispravnu e-mail adresu.", 19 | url: "Unesite ispravan URL.", 20 | date: "Unesite ispravan datum.", 21 | dateISO: "Unesite ispravan datum (ISO).", 22 | number: "Unesite ispravan broj.", 23 | digits: "Unesite samo brojeve.", 24 | creditcard: "Unesite ispravan broj kreditne kartice.", 25 | equalTo: "Unesite ponovo istu vrijednost.", 26 | extension: "Unesite vrijednost sa ispravnom ekstenzijom.", 27 | maxlength: $.validator.format( "Maksimalni broj znakova je {0} ." ), 28 | minlength: $.validator.format( "Minimalni broj znakova je {0} ." ), 29 | rangelength: $.validator.format( "Unesite vrijednost između {0} i {1} znakova." ), 30 | range: $.validator.format( "Unesite vrijednost između {0} i {1}." ), 31 | max: $.validator.format( "Unesite vrijednost manju ili jednaku {0}." ), 32 | min: $.validator.format( "Unesite vrijednost veću ili jednaku {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_mk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: MK (Macedonian; македонски јазик) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Полето е задолжително.", 17 | remote: "Поправете го ова поле", 18 | email: "Внесете правилна e-mail адреса", 19 | url: "Внесете правилен URL.", 20 | date: "Внесете правилен датум", 21 | dateISO: "Внесете правилен датум (ISO).", 22 | number: "Внесете правилен број.", 23 | digits: "Внесете само бројки.", 24 | creditcard: "Внесете правилен број на кредитната картичка.", 25 | equalTo: "Внесете ја истата вредност повторно.", 26 | extension: "Внесете вредност со соодветна екстензија.", 27 | maxlength: $.validator.format( "Внесете максимално {0} знаци." ), 28 | minlength: $.validator.format( "Внесете барем {0} знаци." ), 29 | rangelength: $.validator.format( "Внесете вредност со должина помеѓу {0} и {1} знаци." ), 30 | range: $.validator.format( "Внесете вредност помеѓу {0} и {1}." ), 31 | max: $.validator.format( "Внесете вредност помала или еднаква на {0}." ), 32 | min: $.validator.format( "Внесете вредност поголема или еднаква на {0}" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_hu.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: HU (Hungarian; Magyar) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Kötelező megadni.", 17 | maxlength: $.validator.format( "Legfeljebb {0} karakter hosszú legyen." ), 18 | minlength: $.validator.format( "Legalább {0} karakter hosszú legyen." ), 19 | rangelength: $.validator.format( "Legalább {0} és legfeljebb {1} karakter hosszú legyen." ), 20 | email: "Érvényes e-mail címnek kell lennie.", 21 | url: "Érvényes URL-nek kell lennie.", 22 | date: "Dátumnak kell lennie.", 23 | number: "Számnak kell lennie.", 24 | digits: "Csak számjegyek lehetnek.", 25 | equalTo: "Meg kell egyeznie a két értéknek.", 26 | range: $.validator.format( "{0} és {1} közé kell esnie." ), 27 | max: $.validator.format( "Nem lehet nagyobb, mint {0}." ), 28 | min: $.validator.format( "Nem lehet kisebb, mint {0}." ), 29 | creditcard: "Érvényes hitelkártyaszámnak kell lennie.", 30 | remote: "Kérem javítsa ki ezt a mezőt.", 31 | dateISO: "Kérem írjon be egy érvényes dátumot (ISO).", 32 | step: $.validator.format( "A {0} egyik többszörösét adja meg." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sr_lat.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SR (Serbian - Latin alphabet; srpski jezik - latinica) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Polje je obavezno.", 17 | remote: "Sredite ovo polje.", 18 | email: "Unesite ispravnu e-mail adresu", 19 | url: "Unesite ispravan URL.", 20 | date: "Unesite ispravan datum.", 21 | dateISO: "Unesite ispravan datum (ISO).", 22 | number: "Unesite ispravan broj.", 23 | digits: "Unesite samo cifre.", 24 | creditcard: "Unesite ispravan broj kreditne kartice.", 25 | equalTo: "Unesite istu vrednost ponovo.", 26 | extension: "Unesite vrednost sa odgovarajućom ekstenzijom.", 27 | maxlength: $.validator.format( "Unesite manje od {0} karaktera." ), 28 | minlength: $.validator.format( "Unesite barem {0} karaktera." ), 29 | rangelength: $.validator.format( "Unesite vrednost dugačku između {0} i {1} karaktera." ), 30 | range: $.validator.format( "Unesite vrednost između {0} i {1}." ), 31 | max: $.validator.format( "Unesite vrednost manju ili jednaku {0}." ), 32 | min: $.validator.format( "Unesite vrednost veću ili jednaku {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ur.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: UR (Urdu; اردو) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "ان معلومات کا اندراج ضروری ہے", 17 | remote: "ان معلومات کا اندراج ضروری ہے", 18 | email: "درج کی ہوئی ای میل درست نہیں ہے", 19 | url: "درج کیا گیا پتہ درست نہیں ہے", 20 | date: "درج کی گئی تاریخ درست نہیں ہے", 21 | dateISO: "معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ", 22 | number: "درج کیےگئے ہندسے درست نہیں ہیں", 23 | digits: "صرف ہندسے اندراج کئے جاسکتے ہیں", 24 | creditcard: "درج کیا گیا کارڈ نمبر درست نہیں ہے", 25 | equalTo: "اندراج کا موازنہ درست نہیں ہے", 26 | extension: "اندراج درست نہیں ہے", 27 | maxlength: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ), 28 | minlength: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ), 29 | rangelength: $.validator.format( "اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے" ), 30 | range: $.validator.format( "اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے" ), 31 | max: $.validator.format( "زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں" ), 32 | min: $.validator.format( "کم سے کم {0} کا اندراج کرنا ضروری ہے" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_bn_BD.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: bn_BD (Bengali, Bangladesh) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "এই তথ্যটি আবশ্যক।", 17 | remote: "এই তথ্যটি ঠিক করুন।", 18 | email: "অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।", 19 | url: "অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।", 20 | date: "তারিখ সঠিক নয়।", 21 | dateISO: "অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।", 22 | number: "অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।", 23 | digits: "এখানে শুধু সংখ্যা ব্যবহার করা যাবে।", 24 | creditcard: "অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।", 25 | equalTo: "একই মান আবার লিখুন।", 26 | extension: "সঠিক ধরনের ফাইল আপলোড করুন।", 27 | maxlength: $.validator.format( "{0}টির বেশি অক্ষর লেখা যাবে না।" ), 28 | minlength: $.validator.format( "{0}টির কম অক্ষর লেখা যাবে না।" ), 29 | rangelength: $.validator.format( "{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।" ), 30 | range: $.validator.format( "{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।" ), 31 | max: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।" ), 32 | min: $.validator.format( "অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ge.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /** 12 | * @author @tatocaster 13 | * Translated default messages for the jQuery validation plugin. 14 | * Locale: GE (Georgian; ქართული) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "ეს ველი სავალდებულოა", 18 | remote: "გთხოვთ შეასწოროთ.", 19 | email: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 20 | url: "გთხოვთ შეიყვანოთ სწორი ფორმატით.", 21 | date: "გთხოვთ შეიყვანოთ სწორი თარიღი.", 22 | dateISO: "გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).", 23 | number: "გთხოვთ შეიყვანოთ რიცხვი.", 24 | digits: "დაშვებულია მხოლოდ ციფრები.", 25 | creditcard: "გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.", 26 | equalTo: "გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.", 27 | maxlength: $.validator.format( "გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი." ), 28 | minlength: $.validator.format( "შეიყვანეთ მინიმუმ {0} სიმბოლო." ), 29 | rangelength: $.validator.format( "გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები." ), 30 | range: $.validator.format( "შეიყვანეთ {0} -სა {1} -ს შორის." ), 31 | max: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს." ), 32 | min: $.validator.format( "გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sv.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SV (Swedish; Svenska) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Detta fält är obligatoriskt.", 17 | remote: "Var snäll och åtgärda detta fält.", 18 | maxlength: $.validator.format( "Du får ange högst {0} tecken." ), 19 | minlength: $.validator.format( "Du måste ange minst {0} tecken." ), 20 | rangelength: $.validator.format( "Ange minst {0} och max {1} tecken." ), 21 | email: "Ange en korrekt e-postadress.", 22 | url: "Ange en korrekt URL.", 23 | date: "Ange ett korrekt datum.", 24 | dateISO: "Ange ett korrekt datum (ÅÅÅÅ-MM-DD).", 25 | number: "Ange ett korrekt nummer.", 26 | digits: "Ange endast siffror.", 27 | equalTo: "Ange samma värde igen.", 28 | range: $.validator.format( "Ange ett värde mellan {0} och {1}." ), 29 | max: $.validator.format( "Ange ett värde som är mindre eller lika med {0}." ), 30 | min: $.validator.format( "Ange ett värde som är större eller lika med {0}." ), 31 | creditcard: "Ange ett korrekt kreditkortsnummer.", 32 | pattern: "Ogiltigt format." 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_et.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ET (Estonian; eesti, eesti keel) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "See väli peab olema täidetud.", 17 | maxlength: $.validator.format( "Palun sisestage vähem kui {0} tähemärki." ), 18 | minlength: $.validator.format( "Palun sisestage vähemalt {0} tähemärki." ), 19 | rangelength: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki." ), 20 | email: "Palun sisestage korrektne e-maili aadress.", 21 | url: "Palun sisestage korrektne URL.", 22 | date: "Palun sisestage korrektne kuupäev.", 23 | dateISO: "Palun sisestage korrektne kuupäev (YYYY-MM-DD).", 24 | number: "Palun sisestage korrektne number.", 25 | digits: "Palun sisestage ainult numbreid.", 26 | equalTo: "Palun sisestage sama väärtus uuesti.", 27 | range: $.validator.format( "Palun sisestage väärtus vahemikus {0} kuni {1}." ), 28 | max: $.validator.format( "Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}." ), 29 | min: $.validator.format( "Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}." ), 30 | creditcard: "Palun sisestage korrektne krediitkaardi number." 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_si.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: SI (Slovenian) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "To polje je obvezno.", 17 | remote: "Vpis v tem polju ni v pravi obliki.", 18 | email: "Prosimo, vnesite pravi email naslov.", 19 | url: "Prosimo, vnesite pravi URL.", 20 | date: "Prosimo, vnesite pravi datum.", 21 | dateISO: "Prosimo, vnesite pravi datum (ISO).", 22 | number: "Prosimo, vnesite pravo številko.", 23 | digits: "Prosimo, vnesite samo številke.", 24 | creditcard: "Prosimo, vnesite pravo številko kreditne kartice.", 25 | equalTo: "Prosimo, ponovno vnesite enako vsebino.", 26 | extension: "Prosimo, vnesite vsebino z pravo končnico.", 27 | maxlength: $.validator.format( "Prosimo, da ne vnašate več kot {0} znakov." ), 28 | minlength: $.validator.format( "Prosimo, vnesite vsaj {0} znakov." ), 29 | rangelength: $.validator.format( "Prosimo, vnesite od {0} do {1} znakov." ), 30 | range: $.validator.format( "Prosimo, vnesite vrednost med {0} in {1}." ), 31 | max: $.validator.format( "Prosimo, vnesite vrednost manjšo ali enako {0}." ), 32 | min: $.validator.format( "Prosimo, vnesite vrednost večjo ali enako {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_id.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ID (Indonesia; Indonesian) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Kolom ini diperlukan.", 17 | remote: "Harap benarkan kolom ini.", 18 | email: "Silakan masukkan format email yang benar.", 19 | url: "Silakan masukkan format URL yang benar.", 20 | date: "Silakan masukkan format tanggal yang benar.", 21 | dateISO: "Silakan masukkan format tanggal(ISO) yang benar.", 22 | number: "Silakan masukkan angka yang benar.", 23 | digits: "Harap masukan angka saja.", 24 | creditcard: "Harap masukkan format kartu kredit yang benar.", 25 | equalTo: "Harap masukkan nilai yg sama dengan sebelumnya.", 26 | maxlength: $.validator.format( "Input dibatasi hanya {0} karakter." ), 27 | minlength: $.validator.format( "Input tidak kurang dari {0} karakter." ), 28 | rangelength: $.validator.format( "Panjang karakter yg diizinkan antara {0} dan {1} karakter." ), 29 | range: $.validator.format( "Harap masukkan nilai antara {0} dan {1}." ), 30 | max: $.validator.format( "Harap masukkan nilai lebih kecil atau sama dengan {0}." ), 31 | min: $.validator.format( "Harap masukkan nilai lebih besar atau sama dengan {0}." ) 32 | } ); 33 | return $; 34 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_sl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Language: SL (Slovenian; slovenski jezik) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "To polje je obvezno.", 17 | remote: "Prosimo popravite to polje.", 18 | email: "Prosimo vnesite veljaven email naslov.", 19 | url: "Prosimo vnesite veljaven URL naslov.", 20 | date: "Prosimo vnesite veljaven datum.", 21 | dateISO: "Prosimo vnesite veljaven ISO datum.", 22 | number: "Prosimo vnesite veljavno število.", 23 | digits: "Prosimo vnesite samo števila.", 24 | creditcard: "Prosimo vnesite veljavno številko kreditne kartice.", 25 | equalTo: "Prosimo ponovno vnesite vrednost.", 26 | extension: "Prosimo vnesite vrednost z veljavno končnico.", 27 | maxlength: $.validator.format( "Prosimo vnesite največ {0} znakov." ), 28 | minlength: $.validator.format( "Prosimo vnesite najmanj {0} znakov." ), 29 | rangelength: $.validator.format( "Prosimo vnesite najmanj {0} in največ {1} znakov." ), 30 | range: $.validator.format( "Prosimo vnesite vrednost med {0} in {1}." ), 31 | max: $.validator.format( "Prosimo vnesite vrednost manjše ali enako {0}." ), 32 | min: $.validator.format( "Prosimo vnesite vrednost večje ali enako {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_bg.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: BG (Bulgarian; български език) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Полето е задължително.", 17 | remote: "Моля, въведете правилната стойност.", 18 | email: "Моля, въведете валиден email.", 19 | url: "Моля, въведете валидно URL.", 20 | date: "Моля, въведете валидна дата.", 21 | dateISO: "Моля, въведете валидна дата (ISO).", 22 | number: "Моля, въведете валиден номер.", 23 | digits: "Моля, въведете само цифри.", 24 | creditcard: "Моля, въведете валиден номер на кредитна карта.", 25 | equalTo: "Моля, въведете същата стойност отново.", 26 | extension: "Моля, въведете стойност с валидно разширение.", 27 | maxlength: $.validator.format( "Моля, въведете не повече от {0} символа." ), 28 | minlength: $.validator.format( "Моля, въведете поне {0} символа." ), 29 | rangelength: $.validator.format( "Моля, въведете стойност с дължина между {0} и {1} символа." ), 30 | range: $.validator.format( "Моля, въведете стойност между {0} и {1}." ), 31 | max: $.validator.format( "Моля, въведете стойност по-малка или равна на {0}." ), 32 | min: $.validator.format( "Моля, въведете стойност по-голяма или равна на {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_my.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: MY (Malay; Melayu) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Medan ini diperlukan.", 17 | remote: "Sila betulkan medan ini.", 18 | email: "Sila masukkan alamat emel yang betul.", 19 | url: "Sila masukkan URL yang betul.", 20 | date: "Sila masukkan tarikh yang betul.", 21 | dateISO: "Sila masukkan tarikh(ISO) yang betul.", 22 | number: "Sila masukkan nombor yang betul.", 23 | digits: "Sila masukkan nilai digit sahaja.", 24 | creditcard: "Sila masukkan nombor kredit kad yang betul.", 25 | equalTo: "Sila masukkan nilai yang sama semula.", 26 | extension: "Sila masukkan nilai yang telah diterima.", 27 | maxlength: $.validator.format( "Sila masukkan tidak lebih dari {0} aksara." ), 28 | minlength: $.validator.format( "Sila masukkan sekurang-kurangnya {0} aksara." ), 29 | rangelength: $.validator.format( "Sila masukkan antara {0} dan {1} panjang aksara." ), 30 | range: $.validator.format( "Sila masukkan nilai antara {0} dan {1} aksara." ), 31 | max: $.validator.format( "Sila masukkan nilai yang kurang atau sama dengan {0}." ), 32 | min: $.validator.format( "Sila masukkan nilai yang lebih atau sama dengan {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_cs.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: CS (Czech; čeština, český jazyk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Tento údaj je povinný.", 17 | remote: "Prosím, opravte tento údaj.", 18 | email: "Prosím, zadejte platný e-mail.", 19 | url: "Prosím, zadejte platné URL.", 20 | date: "Prosím, zadejte platné datum.", 21 | dateISO: "Prosím, zadejte platné datum (ISO).", 22 | number: "Prosím, zadejte číslo.", 23 | digits: "Prosím, zadávejte pouze číslice.", 24 | creditcard: "Prosím, zadejte číslo kreditní karty.", 25 | equalTo: "Prosím, zadejte znovu stejnou hodnotu.", 26 | extension: "Prosím, zadejte soubor se správnou příponou.", 27 | maxlength: $.validator.format( "Prosím, zadejte nejvíce {0} znaků." ), 28 | minlength: $.validator.format( "Prosím, zadejte nejméně {0} znaků." ), 29 | rangelength: $.validator.format( "Prosím, zadejte od {0} do {1} znaků." ), 30 | range: $.validator.format( "Prosím, zadejte hodnotu od {0} do {1}." ), 31 | max: $.validator.format( "Prosím, zadejte hodnotu menší nebo rovnu {0}." ), 32 | min: $.validator.format( "Prosím, zadejte hodnotu větší nebo rovnu {0}." ), 33 | step: $.validator.format( "Musí být násobkem čísla {0}." ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_lv.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: LV (Latvian; latviešu valoda) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Šis lauks ir obligāts.", 17 | remote: "Lūdzu, pārbaudiet šo lauku.", 18 | email: "Lūdzu, ievadiet derīgu e-pasta adresi.", 19 | url: "Lūdzu, ievadiet derīgu URL adresi.", 20 | date: "Lūdzu, ievadiet derīgu datumu.", 21 | dateISO: "Lūdzu, ievadiet derīgu datumu (ISO).", 22 | number: "Lūdzu, ievadiet derīgu numuru.", 23 | digits: "Lūdzu, ievadiet tikai ciparus.", 24 | creditcard: "Lūdzu, ievadiet derīgu kredītkartes numuru.", 25 | equalTo: "Lūdzu, ievadiet to pašu vēlreiz.", 26 | extension: "Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.", 27 | maxlength: $.validator.format( "Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes." ), 28 | minlength: $.validator.format( "Lūdzu, ievadiet vismaz {0} rakstzīmes." ), 29 | rangelength: $.validator.format( "Lūdzu ievadiet {0} līdz {1} rakstzīmes." ), 30 | range: $.validator.format( "Lūdzu, ievadiet skaitli no {0} līdz {1}." ), 31 | max: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}." ), 32 | min: $.validator.format( "Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_lt.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: LT (Lithuanian; lietuvių kalba) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Šis laukas yra privalomas.", 17 | remote: "Prašau pataisyti šį lauką.", 18 | email: "Prašau įvesti teisingą elektroninio pašto adresą.", 19 | url: "Prašau įvesti teisingą URL.", 20 | date: "Prašau įvesti teisingą datą.", 21 | dateISO: "Prašau įvesti teisingą datą (ISO).", 22 | number: "Prašau įvesti teisingą skaičių.", 23 | digits: "Prašau naudoti tik skaitmenis.", 24 | creditcard: "Prašau įvesti teisingą kreditinės kortelės numerį.", 25 | equalTo: "Prašau įvestį tą pačią reikšmę dar kartą.", 26 | extension: "Prašau įvesti reikšmę su teisingu plėtiniu.", 27 | maxlength: $.validator.format( "Prašau įvesti ne daugiau kaip {0} simbolių." ), 28 | minlength: $.validator.format( "Prašau įvesti bent {0} simbolius." ), 29 | rangelength: $.validator.format( "Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių." ), 30 | range: $.validator.format( "Prašau įvesti reikšmę intervale nuo {0} iki {1}." ), 31 | max: $.validator.format( "Prašau įvesti reikšmę mažesnę arba lygią {0}." ), 32 | min: $.validator.format( "Prašau įvesti reikšmę didesnę arba lygią {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ka.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: KA (Georgian; ქართული) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "ამ ველის შევსება აუცილებელია.", 17 | remote: "გთხოვთ მიუთითოთ სწორი მნიშვნელობა.", 18 | email: "გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.", 19 | url: "გთხოვთ მიუთითოთ კორექტული URL.", 20 | date: "გთხოვთ მიუთითოთ კორექტული თარიღი.", 21 | dateISO: "გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.", 22 | number: "გთხოვთ მიუთითოთ ციფრი.", 23 | digits: "გთხოვთ მიუთითოთ მხოლოდ ციფრები.", 24 | creditcard: "გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.", 25 | equalTo: "გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.", 26 | extension: "გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.", 27 | maxlength: $.validator.format( "დასაშვებია არაუმეტეს {0} სიმბოლო." ), 28 | minlength: $.validator.format( "აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო." ), 29 | rangelength: $.validator.format( "ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე." ), 30 | range: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე." ), 31 | max: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს." ), 32 | min: $.validator.format( "გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_eu.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: EU (Basque; euskara, euskera) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Eremu hau beharrezkoa da.", 17 | remote: "Mesedez, bete eremu hau.", 18 | email: "Mesedez, idatzi baliozko posta helbide bat.", 19 | url: "Mesedez, idatzi baliozko URL bat.", 20 | date: "Mesedez, idatzi baliozko data bat.", 21 | dateISO: "Mesedez, idatzi baliozko (ISO) data bat.", 22 | number: "Mesedez, idatzi baliozko zenbaki oso bat.", 23 | digits: "Mesedez, idatzi digituak soilik.", 24 | creditcard: "Mesedez, idatzi baliozko txartel zenbaki bat.", 25 | equalTo: "Mesedez, idatzi berdina berriro ere.", 26 | extension: "Mesedez, idatzi onartutako luzapena duen balio bat.", 27 | maxlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gehiago." ), 28 | minlength: $.validator.format( "Mesedez, ez idatzi {0} karaktere baino gutxiago." ), 29 | rangelength: $.validator.format( "Mesedez, idatzi {0} eta {1} karaktere arteko balio bat." ), 30 | range: $.validator.format( "Mesedez, idatzi {0} eta {1} arteko balio bat." ), 31 | max: $.validator.format( "Mesedez, idatzi {0} edo txikiagoa den balio bat." ), 32 | min: $.validator.format( "Mesedez, idatzi {0} edo handiagoa den balio bat." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_tj.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: TJ (Tajikistan; Забони тоҷикӣ) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Ворид кардани ин филд маҷбури аст.", 17 | remote: "Илтимос, маълумоти саҳеҳ ворид кунед.", 18 | email: "Илтимос, почтаи электронии саҳеҳ ворид кунед.", 19 | url: "Илтимос, URL адреси саҳеҳ ворид кунед.", 20 | date: "Илтимос, таърихи саҳеҳ ворид кунед.", 21 | dateISO: "Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.", 22 | number: "Илтимос, рақамҳои саҳеҳ ворид кунед.", 23 | digits: "Илтимос, танҳо рақам ворид кунед.", 24 | creditcard: "Илтимос, кредит карди саҳеҳ ворид кунед.", 25 | equalTo: "Илтимос, миқдори баробар ворид кунед.", 26 | extension: "Илтимос, қофияи файлро дуруст интихоб кунед", 27 | maxlength: $.validator.format( "Илтимос, бештар аз {0} рамз ворид накунед." ), 28 | minlength: $.validator.format( "Илтимос, камтар аз {0} рамз ворид накунед." ), 29 | rangelength: $.validator.format( "Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед." ), 30 | range: $.validator.format( "Илтимос, аз {0} то {1} рақам зиёд ворид кунед." ), 31 | max: $.validator.format( "Илтимос, бештар аз {0} рақам ворид накунед." ), 32 | min: $.validator.format( "Илтимос, камтар аз {0} рақам ворид накунед." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ca.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: CA (Catalan; català) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Aquest camp és obligatori.", 17 | remote: "Si us plau, omple aquest camp.", 18 | email: "Si us plau, escriu una adreça de correu-e vàlida", 19 | url: "Si us plau, escriu una URL vàlida.", 20 | date: "Si us plau, escriu una data vàlida.", 21 | dateISO: "Si us plau, escriu una data (ISO) vàlida.", 22 | number: "Si us plau, escriu un número enter vàlid.", 23 | digits: "Si us plau, escriu només dígits.", 24 | creditcard: "Si us plau, escriu un número de tarjeta vàlid.", 25 | equalTo: "Si us plau, escriu el mateix valor de nou.", 26 | extension: "Si us plau, escriu un valor amb una extensió acceptada.", 27 | maxlength: $.validator.format( "Si us plau, no escriguis més de {0} caracters." ), 28 | minlength: $.validator.format( "Si us plau, no escriguis menys de {0} caracters." ), 29 | rangelength: $.validator.format( "Si us plau, escriu un valor entre {0} i {1} caracters." ), 30 | range: $.validator.format( "Si us plau, escriu un valor entre {0} i {1}." ), 31 | max: $.validator.format( "Si us plau, escriu un valor menor o igual a {0}." ), 32 | min: $.validator.format( "Si us plau, escriu un valor major o igual a {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_uk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: UK (Ukrainian; українська мова) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Це поле необхідно заповнити.", 17 | remote: "Будь ласка, введіть правильне значення.", 18 | email: "Будь ласка, введіть коректну адресу електронної пошти.", 19 | url: "Будь ласка, введіть коректний URL.", 20 | date: "Будь ласка, введіть коректну дату.", 21 | dateISO: "Будь ласка, введіть коректну дату у форматі ISO.", 22 | number: "Будь ласка, введіть число.", 23 | digits: "Вводите потрібно лише цифри.", 24 | creditcard: "Будь ласка, введіть правильний номер кредитної карти.", 25 | equalTo: "Будь ласка, введіть таке ж значення ще раз.", 26 | extension: "Будь ласка, виберіть файл з правильним розширенням.", 27 | maxlength: $.validator.format( "Будь ласка, введіть не більше {0} символів." ), 28 | minlength: $.validator.format( "Будь ласка, введіть не менше {0} символів." ), 29 | rangelength: $.validator.format( "Будь ласка, введіть значення довжиною від {0} до {1} символів." ), 30 | range: $.validator.format( "Будь ласка, введіть число від {0} до {1}." ), 31 | max: $.validator.format( "Будь ласка, введіть число, менше або рівно {0}." ), 32 | min: $.validator.format( "Будь ласка, введіть число, більше або рівно {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_kk.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: KK (Kazakh; қазақ тілі) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Бұл өрісті міндетті түрде толтырыңыз.", 17 | remote: "Дұрыс мағына енгізуіңізді сұраймыз.", 18 | email: "Нақты электронды поштаңызды енгізуіңізді сұраймыз.", 19 | url: "Нақты URL-ды енгізуіңізді сұраймыз.", 20 | date: "Нақты URL-ды енгізуіңізді сұраймыз.", 21 | dateISO: "Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.", 22 | number: "Күнді енгізуіңізді сұраймыз.", 23 | digits: "Тек қана сандарды енгізуіңізді сұраймыз.", 24 | creditcard: "Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.", 25 | equalTo: "Осы мәнді қайта енгізуіңізді сұраймыз.", 26 | extension: "Файлдың кеңейтуін дұрыс таңдаңыз.", 27 | maxlength: $.validator.format( "Ұзындығы {0} символдан көр болмасын." ), 28 | minlength: $.validator.format( "Ұзындығы {0} символдан аз болмасын." ), 29 | rangelength: $.validator.format( "Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз." ), 30 | range: $.validator.format( "Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз." ), 31 | max: $.validator.format( "{0} аз немесе тең санын енгізуіңіді сұраймыз." ), 32 | min: $.validator.format( "{0} көп немесе тең санын енгізуіңізді сұраймыз." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_fi.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: FI (Finnish; suomi, suomen kieli) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Tämä kenttä on pakollinen.", 17 | email: "Syötä oikea sähköpostiosoite.", 18 | url: "Syötä oikea URL-osoite.", 19 | date: "Syötä oikea päivämäärä.", 20 | dateISO: "Syötä oikea päivämäärä muodossa VVVV-KK-PP.", 21 | number: "Syötä luku.", 22 | creditcard: "Syötä voimassa oleva luottokorttinumero.", 23 | digits: "Syötä pelkästään numeroita.", 24 | equalTo: "Syötä sama arvo uudestaan.", 25 | maxlength: $.validator.format( "Voit syöttää enintään {0} merkkiä." ), 26 | minlength: $.validator.format( "Vähintään {0} merkkiä." ), 27 | rangelength: $.validator.format( "Syötä vähintään {0} ja enintään {1} merkkiä." ), 28 | range: $.validator.format( "Syötä arvo väliltä {0}–{1}." ), 29 | max: $.validator.format( "Syötä arvo, joka on enintään {0}." ), 30 | min: $.validator.format( "Syötä arvo, joka on vähintään {0}." ) 31 | } ); 32 | return $; 33 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_it.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: IT (Italian; Italiano) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Campo obbligatorio", 17 | remote: "Controlla questo campo", 18 | email: "Inserisci un indirizzo email valido", 19 | url: "Inserisci un indirizzo web valido", 20 | date: "Inserisci una data valida", 21 | dateISO: "Inserisci una data valida (ISO)", 22 | number: "Inserisci un numero valido", 23 | digits: "Inserisci solo numeri", 24 | creditcard: "Inserisci un numero di carta di credito valido", 25 | equalTo: "Il valore non corrisponde", 26 | extension: "Inserisci un valore con un'estensione valida", 27 | maxlength: $.validator.format( "Non inserire più di {0} caratteri" ), 28 | minlength: $.validator.format( "Inserisci almeno {0} caratteri" ), 29 | rangelength: $.validator.format( "Inserisci un valore compreso tra {0} e {1} caratteri" ), 30 | range: $.validator.format( "Inserisci un valore compreso tra {0} e {1}" ), 31 | max: $.validator.format( "Inserisci un valore minore o uguale a {0}" ), 32 | min: $.validator.format( "Inserisci un valore maggiore o uguale a {0}" ), 33 | nifES: "Inserisci un NIF valido", 34 | nieES: "Inserisci un NIE valido", 35 | cifES: "Inserisci un CIF valido", 36 | currency: "Inserisci una valuta valida" 37 | } ); 38 | return $; 39 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ru.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: RU (Russian; русский язык) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Это поле необходимо заполнить.", 17 | remote: "Пожалуйста, введите правильное значение.", 18 | email: "Пожалуйста, введите корректный адрес электронной почты.", 19 | url: "Пожалуйста, введите корректный URL.", 20 | date: "Пожалуйста, введите корректную дату.", 21 | dateISO: "Пожалуйста, введите корректную дату в формате ISO.", 22 | number: "Пожалуйста, введите число.", 23 | digits: "Пожалуйста, вводите только цифры.", 24 | creditcard: "Пожалуйста, введите правильный номер кредитной карты.", 25 | equalTo: "Пожалуйста, введите такое же значение ещё раз.", 26 | extension: "Пожалуйста, выберите файл с правильным расширением.", 27 | maxlength: $.validator.format( "Пожалуйста, введите не больше {0} символов." ), 28 | minlength: $.validator.format( "Пожалуйста, введите не меньше {0} символов." ), 29 | rangelength: $.validator.format( "Пожалуйста, введите значение длиной от {0} до {1} символов." ), 30 | range: $.validator.format( "Пожалуйста, введите число от {0} до {1}." ), 31 | max: $.validator.format( "Пожалуйста, введите число, меньшее или равное {0}." ), 32 | min: $.validator.format( "Пожалуйста, введите число, большее или равное {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_el.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: EL (Greek; ελληνικά) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Αυτό το πεδίο είναι υποχρεωτικό.", 17 | remote: "Παρακαλώ διορθώστε αυτό το πεδίο.", 18 | email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.", 19 | url: "Παρακαλώ εισάγετε ένα έγκυρο URL.", 20 | date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.", 21 | dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).", 22 | number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.", 23 | digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.", 24 | creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.", 25 | equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.", 26 | extension: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.", 27 | maxlength: $.validator.format( "Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες." ), 28 | minlength: $.validator.format( "Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες." ), 29 | rangelength: $.validator.format( "Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων." ), 30 | range: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}." ), 31 | max: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}." ), 32 | min: $.validator.format( "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_fa.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: FA (Persian; فارسی) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "تکمیل این فیلد اجباری است.", 17 | remote: "لطفا این فیلد را تصحیح کنید.", 18 | email: "لطفا یک ایمیل صحیح وارد کنید.", 19 | url: "لطفا آدرس صحیح وارد کنید.", 20 | date: "لطفا تاریخ صحیح وارد کنید.", 21 | dateFA: "لطفا یک تاریخ صحیح وارد کنید.", 22 | dateISO: "لطفا تاریخ صحیح وارد کنید (ISO).", 23 | number: "لطفا عدد صحیح وارد کنید.", 24 | digits: "لطفا تنها رقم وارد کنید.", 25 | creditcard: "لطفا کریدیت کارت صحیح وارد کنید.", 26 | equalTo: "لطفا مقدار برابری وارد کنید.", 27 | extension: "لطفا مقداری وارد کنید که", 28 | alphanumeric: "لطفا مقدار را عدد (انگلیسی) وارد کنید.", 29 | maxlength: $.validator.format( "لطفا بیشتر از {0} حرف وارد نکنید." ), 30 | minlength: $.validator.format( "لطفا کمتر از {0} حرف وارد نکنید." ), 31 | rangelength: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ), 32 | range: $.validator.format( "لطفا مقداری بین {0} تا {1} حرف وارد کنید." ), 33 | max: $.validator.format( "لطفا مقداری کمتر از {0} وارد کنید." ), 34 | min: $.validator.format( "لطفا مقداری بیشتر از {0} وارد کنید." ), 35 | minWords: $.validator.format( "لطفا حداقل {0} کلمه وارد کنید." ), 36 | maxWords: $.validator.format( "لطفا حداکثر {0} کلمه وارد کنید." ) 37 | } ); 38 | return $; 39 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_ro.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: RO (Romanian, limba română) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Acest câmp este obligatoriu.", 17 | remote: "Te rugăm să completezi acest câmp.", 18 | email: "Te rugăm să introduci o adresă de email validă", 19 | url: "Te rugăm sa introduci o adresă URL validă.", 20 | date: "Te rugăm să introduci o dată corectă.", 21 | dateISO: "Te rugăm să introduci o dată (ISO) corectă.", 22 | number: "Te rugăm să introduci un număr întreg valid.", 23 | digits: "Te rugăm să introduci doar cifre.", 24 | creditcard: "Te rugăm să introduci un numar de carte de credit valid.", 25 | equalTo: "Te rugăm să reintroduci valoarea.", 26 | extension: "Te rugăm să introduci o valoare cu o extensie validă.", 27 | maxlength: $.validator.format( "Te rugăm să nu introduci mai mult de {0} caractere." ), 28 | minlength: $.validator.format( "Te rugăm să introduci cel puțin {0} caractere." ), 29 | rangelength: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1} caractere." ), 30 | range: $.validator.format( "Te rugăm să introduci o valoare între {0} și {1}." ), 31 | max: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mică decât {0}." ), 32 | min: $.validator.format( "Te rugăm să introduci o valoare egal sau mai mare decât {0}." ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_az.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: Az (Azeri; azərbaycan dili) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Bu xana mütləq doldurulmalıdır.", 17 | remote: "Zəhmət olmasa, düzgün məna daxil edin.", 18 | email: "Zəhmət olmasa, düzgün elektron poçt daxil edin.", 19 | url: "Zəhmət olmasa, düzgün URL daxil edin.", 20 | date: "Zəhmət olmasa, düzgün tarix daxil edin.", 21 | dateISO: "Zəhmət olmasa, düzgün ISO formatlı tarix daxil edin.", 22 | number: "Zəhmət olmasa, düzgün rəqəm daxil edin.", 23 | digits: "Zəhmət olmasa, yalnız rəqəm daxil edin.", 24 | creditcard: "Zəhmət olmasa, düzgün kredit kart nömrəsini daxil edin.", 25 | equalTo: "Zəhmət olmasa, eyni mənanı bir daha daxil edin.", 26 | extension: "Zəhmət olmasa, düzgün genişlənməyə malik faylı seçin.", 27 | maxlength: $.validator.format( "Zəhmət olmasa, {0} simvoldan çox olmayaraq daxil edin." ), 28 | minlength: $.validator.format( "Zəhmət olmasa, {0} simvoldan az olmayaraq daxil edin." ), 29 | rangelength: $.validator.format( "Zəhmət olmasa, {0} - {1} aralığında uzunluğa malik simvol daxil edin." ), 30 | range: $.validator.format( "Zəhmət olmasa, {0} - {1} aralığında rəqəm daxil edin." ), 31 | max: $.validator.format( "Zəhmət olmasa, {0} və ondan kiçik rəqəm daxil edin." ), 32 | min: $.validator.format( "Zəhmət olmasa, {0} və ondan böyük rəqəm daxil edin" ) 33 | } ); 34 | return $; 35 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_es.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ES (Spanish; Español) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Este campo es obligatorio.", 17 | remote: "Por favor, rellena este campo.", 18 | email: "Por favor, escribe una dirección de correo válida.", 19 | url: "Por favor, escribe una URL válida.", 20 | date: "Por favor, escribe una fecha válida.", 21 | dateISO: "Por favor, escribe una fecha (ISO) válida.", 22 | number: "Por favor, escribe un número válido.", 23 | digits: "Por favor, escribe sólo dígitos.", 24 | creditcard: "Por favor, escribe un número de tarjeta válido.", 25 | equalTo: "Por favor, escribe el mismo valor de nuevo.", 26 | extension: "Por favor, escribe un valor con una extensión aceptada.", 27 | maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ), 28 | minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ), 29 | rangelength: $.validator.format( "Por favor, escribe un valor entre {0} y {1} caracteres." ), 30 | range: $.validator.format( "Por favor, escribe un valor entre {0} y {1}." ), 31 | max: $.validator.format( "Por favor, escribe un valor menor o igual a {0}." ), 32 | min: $.validator.format( "Por favor, escribe un valor mayor o igual a {0}." ), 33 | nifES: "Por favor, escribe un NIF válido.", 34 | nieES: "Por favor, escribe un NIE válido.", 35 | cifES: "Por favor, escribe un CIF válido." 36 | } ); 37 | return $; 38 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_tr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: TR (Turkish; Türkçe) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Bu alanın doldurulması zorunludur.", 17 | remote: "Lütfen bu alanı düzeltin.", 18 | email: "Lütfen geçerli bir e-posta adresi giriniz.", 19 | url: "Lütfen geçerli bir web adresi (URL) giriniz.", 20 | date: "Lütfen geçerli bir tarih giriniz.", 21 | dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)", 22 | number: "Lütfen geçerli bir sayı giriniz.", 23 | digits: "Lütfen sadece sayısal karakterler giriniz.", 24 | creditcard: "Lütfen geçerli bir kredi kartı giriniz.", 25 | equalTo: "Lütfen aynı değeri tekrar giriniz.", 26 | extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.", 27 | maxlength: $.validator.format( "Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz." ), 28 | minlength: $.validator.format( "Lütfen en az {0} karakter uzunluğunda bir değer giriniz." ), 29 | rangelength: $.validator.format( "Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz." ), 30 | range: $.validator.format( "Lütfen {0} ile {1} arasında bir değer giriniz." ), 31 | max: $.validator.format( "Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz." ), 32 | min: $.validator.format( "Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz." ), 33 | require_from_group: $.validator.format( "Lütfen bu alanların en az {0} tanesini doldurunuz." ) 34 | } ); 35 | return $; 36 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_es_PE.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ES (Spanish; Español) 14 | * Region: PE (Perú) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "Este campo es obligatorio.", 18 | remote: "Por favor, llene este campo.", 19 | email: "Por favor, escriba un correo electrónico válido.", 20 | url: "Por favor, escriba una URL válida.", 21 | date: "Por favor, escriba una fecha válida.", 22 | dateISO: "Por favor, escriba una fecha (ISO) válida.", 23 | number: "Por favor, escriba un número válido.", 24 | digits: "Por favor, escriba sólo dígitos.", 25 | creditcard: "Por favor, escriba un número de tarjeta válido.", 26 | equalTo: "Por favor, escriba el mismo valor de nuevo.", 27 | extension: "Por favor, escriba un valor con una extensión permitida.", 28 | maxlength: $.validator.format( "Por favor, no escriba más de {0} caracteres." ), 29 | minlength: $.validator.format( "Por favor, no escriba menos de {0} caracteres." ), 30 | rangelength: $.validator.format( "Por favor, escriba un valor entre {0} y {1} caracteres." ), 31 | range: $.validator.format( "Por favor, escriba un valor entre {0} y {1}." ), 32 | max: $.validator.format( "Por favor, escriba un valor menor o igual a {0}." ), 33 | min: $.validator.format( "Por favor, escriba un valor mayor o igual a {0}." ), 34 | nifES: "Por favor, escriba un NIF válido.", 35 | nieES: "Por favor, escriba un NIE válido.", 36 | cifES: "Por favor, escriba un CIF válido." 37 | } ); 38 | return $; 39 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_es_AR.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: ES (Spanish; Español) 14 | * Region: AR (Argentina) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "Este campo es obligatorio.", 18 | remote: "Por favor, completá este campo.", 19 | email: "Por favor, escribí una dirección de correo válida.", 20 | url: "Por favor, escribí una URL válida.", 21 | date: "Por favor, escribí una fecha válida.", 22 | dateISO: "Por favor, escribí una fecha (ISO) válida.", 23 | number: "Por favor, escribí un número entero válido.", 24 | digits: "Por favor, escribí sólo dígitos.", 25 | creditcard: "Por favor, escribí un número de tarjeta válido.", 26 | equalTo: "Por favor, escribí el mismo valor de nuevo.", 27 | extension: "Por favor, escribí un valor con una extensión aceptada.", 28 | maxlength: $.validator.format( "Por favor, no escribas más de {0} caracteres." ), 29 | minlength: $.validator.format( "Por favor, no escribas menos de {0} caracteres." ), 30 | rangelength: $.validator.format( "Por favor, escribí un valor entre {0} y {1} caracteres." ), 31 | range: $.validator.format( "Por favor, escribí un valor entre {0} y {1}." ), 32 | max: $.validator.format( "Por favor, escribí un valor menor o igual a {0}." ), 33 | min: $.validator.format( "Por favor, escribí un valor mayor o igual a {0}." ), 34 | nifES: "Por favor, escribí un NIF válido.", 35 | nieES: "Por favor, escribí un NIE válido.", 36 | cifES: "Por favor, escribí un CIF válido." 37 | } ); 38 | return $; 39 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_pl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: PL (Polish; język polski, polszczyzna) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "To pole jest wymagane.", 17 | remote: "Proszę o wypełnienie tego pola.", 18 | email: "Proszę o podanie prawidłowego adresu email.", 19 | url: "Proszę o podanie prawidłowego URL.", 20 | date: "Proszę o podanie prawidłowej daty.", 21 | dateISO: "Proszę o podanie prawidłowej daty (ISO).", 22 | number: "Proszę o podanie prawidłowej liczby.", 23 | digits: "Proszę o podanie samych cyfr.", 24 | creditcard: "Proszę o podanie prawidłowej karty kredytowej.", 25 | equalTo: "Proszę o podanie tej samej wartości ponownie.", 26 | extension: "Proszę o podanie wartości z prawidłowym rozszerzeniem.", 27 | nipPL: "Proszę o podanie prawidłowego numeru NIP.", 28 | phonePL: "Proszę o podanie prawidłowego numeru telefonu", 29 | maxlength: $.validator.format( "Proszę o podanie nie więcej niż {0} znaków." ), 30 | minlength: $.validator.format( "Proszę o podanie przynajmniej {0} znaków." ), 31 | rangelength: $.validator.format( "Proszę o podanie wartości o długości od {0} do {1} znaków." ), 32 | range: $.validator.format( "Proszę o podanie wartości z przedziału od {0} do {1}." ), 33 | max: $.validator.format( "Proszę o podanie wartości mniejszej bądź równej {0}." ), 34 | min: $.validator.format( "Proszę o podanie wartości większej bądź równej {0}." ), 35 | pattern: $.validator.format( "Pole zawiera niedozwolone znaki." ) 36 | } ); 37 | return $; 38 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_gl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: GL (Galician; Galego) 14 | */ 15 | ( function( $ ) { 16 | $.extend( $.validator.messages, { 17 | required: "Este campo é obrigatorio.", 18 | remote: "Por favor, cubre este campo.", 19 | email: "Por favor, escribe unha dirección de correo válida.", 20 | url: "Por favor, escribe unha URL válida.", 21 | date: "Por favor, escribe unha data válida.", 22 | dateISO: "Por favor, escribe unha data (ISO) válida.", 23 | number: "Por favor, escribe un número válido.", 24 | digits: "Por favor, escribe só díxitos.", 25 | creditcard: "Por favor, escribe un número de tarxeta válido.", 26 | equalTo: "Por favor, escribe o mesmo valor de novo.", 27 | extension: "Por favor, escribe un valor cunha extensión aceptada.", 28 | maxlength: $.validator.format( "Por favor, non escribas máis de {0} caracteres." ), 29 | minlength: $.validator.format( "Por favor, non escribas menos de {0} caracteres." ), 30 | rangelength: $.validator.format( "Por favor, escribe un valor entre {0} e {1} caracteres." ), 31 | range: $.validator.format( "Por favor, escribe un valor entre {0} e {1}." ), 32 | max: $.validator.format( "Por favor, escribe un valor menor ou igual a {0}." ), 33 | min: $.validator.format( "Por favor, escribe un valor maior ou igual a {0}." ), 34 | nifES: "Por favor, escribe un NIF válido.", 35 | nieES: "Por favor, escribe un NIE válido.", 36 | cifES: "Por favor, escribe un CIF válido." 37 | } ); 38 | }( jQuery ) ); 39 | return $; 40 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_pt_PT.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: PT (Portuguese; português) 14 | * Region: PT (Portugal) 15 | */ 16 | $.extend( $.validator.messages, { 17 | required: "Campo de preenchimento obrigatório.", 18 | remote: "Por favor, corrija este campo.", 19 | email: "Por favor, introduza um endereço eletrónico válido.", 20 | url: "Por favor, introduza um URL válido.", 21 | date: "Por favor, introduza uma data válida.", 22 | dateISO: "Por favor, introduza uma data válida (ISO).", 23 | number: "Por favor, introduza um número válido.", 24 | digits: "Por favor, introduza apenas dígitos.", 25 | creditcard: "Por favor, introduza um número de cartão de crédito válido.", 26 | equalTo: "Por favor, introduza de novo o mesmo valor.", 27 | extension: "Por favor, introduza um ficheiro com uma extensão válida.", 28 | maxlength: $.validator.format( "Por favor, não introduza mais do que {0} caracteres." ), 29 | minlength: $.validator.format( "Por favor, introduza pelo menos {0} caracteres." ), 30 | rangelength: $.validator.format( "Por favor, introduza entre {0} e {1} caracteres." ), 31 | range: $.validator.format( "Por favor, introduza um valor entre {0} e {1}." ), 32 | max: $.validator.format( "Por favor, introduza um valor menor ou igual a {0}." ), 33 | min: $.validator.format( "Por favor, introduza um valor maior ou igual a {0}." ), 34 | nifES: "Por favor, introduza um NIF válido.", 35 | nieES: "Por favor, introduza um NIE válido.", 36 | cifES: "Por favor, introduza um CIF válido." 37 | } ); 38 | return $; 39 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_da.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: DA (Danish; dansk) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dette felt er påkrævet.", 17 | remote: "Ret venligst dette felt", 18 | email: "Indtast en gyldig email-adresse.", 19 | url: "Indtast en gyldig URL.", 20 | date: "Indtast en gyldig dato.", 21 | number: "Indtast et tal.", 22 | digits: "Indtast kun cifre.", 23 | creditcard: "Indtast et gyldigt kreditkortnummer.", 24 | equalTo: "Indtast den samme værdi igen.", 25 | time: "Angiv en gyldig tid mellem kl. 00:00 og 23:59.", 26 | ipv4: "Angiv venligst en gyldig IPv4-adresse.", 27 | ipv6: "Angiv venligst en gyldig IPv6-adresse.", 28 | require_from_group: $.validator.format( "Angiv mindst {0} af disse felter." ), 29 | extension: "Indtast venligst en værdi med en gyldig endelse", 30 | pattern: "Ugyldigt format", 31 | lettersonly: "Angiv venligst kun bogstaver.", 32 | nowhitespace: "Må ikke indholde mellemrum", 33 | maxlength: $.validator.format( "Indtast højst {0} tegn." ), 34 | minlength: $.validator.format( "Indtast mindst {0} tegn." ), 35 | rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ), 36 | range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ), 37 | max: $.validator.format( "Angiv en værdi der højst er {0}." ), 38 | min: $.validator.format( "Angiv en værdi der mindst er {0}." ), 39 | minWords: $.validator.format( "Indtast venligst mindst {0} ord" ), 40 | maxWords: $.validator.format( "Indtast venligst højst {0} ord" ), 41 | step: $.validator.format( "Angiv en værdi gange {0}." ), 42 | notEqualTo: "Angiv en anden værdi, værdierne må ikke være det samme.", 43 | integer: "Angiv et ikke-decimaltal, der er positivt eller negativt." 44 | } ); 45 | return $; 46 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_nl.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: NL (Dutch; Nederlands, Vlaams) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dit is een verplicht veld.", 17 | remote: "Controleer dit veld.", 18 | email: "Vul hier een geldig e-mailadres in.", 19 | url: "Vul hier een geldige URL in.", 20 | date: "Vul hier een geldige datum in.", 21 | dateISO: "Vul hier een geldige datum in (ISO-formaat).", 22 | number: "Vul hier een geldig getal in.", 23 | digits: "Vul hier alleen getallen in.", 24 | creditcard: "Vul hier een geldig creditcardnummer in.", 25 | equalTo: "Vul hier dezelfde waarde in.", 26 | extension: "Vul hier een waarde in met een geldige extensie.", 27 | maxlength: $.validator.format( "Vul hier maximaal {0} tekens in." ), 28 | minlength: $.validator.format( "Vul hier minimaal {0} tekens in." ), 29 | rangelength: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1} tekens." ), 30 | range: $.validator.format( "Vul hier een waarde in van minimaal {0} en maximaal {1}." ), 31 | max: $.validator.format( "Vul hier een waarde in kleiner dan of gelijk aan {0}." ), 32 | min: $.validator.format( "Vul hier een waarde in groter dan of gelijk aan {0}." ), 33 | step: $.validator.format( "Vul hier een veelvoud van {0} in." ), 34 | 35 | // For validations in additional-methods.js 36 | iban: "Vul hier een geldig IBAN in.", 37 | dateNL: "Vul hier een geldige datum in.", 38 | phoneNL: "Vul hier een geldig Nederlands telefoonnummer in.", 39 | mobileNL: "Vul hier een geldig Nederlands mobiel telefoonnummer in.", 40 | postalcodeNL: "Vul hier een geldige postcode in.", 41 | bankaccountNL: "Vul hier een geldig bankrekeningnummer in.", 42 | giroaccountNL: "Vul hier een geldig gironummer in.", 43 | bankorgiroaccountNL: "Vul hier een geldig bank- of gironummer in." 44 | } ); 45 | return $; 46 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_fr.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: FR (French; français) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Ce champ est obligatoire.", 17 | remote: "Veuillez corriger ce champ.", 18 | email: "Veuillez fournir une adresse électronique valide.", 19 | url: "Veuillez fournir une adresse URL valide.", 20 | date: "Veuillez fournir une date valide.", 21 | dateISO: "Veuillez fournir une date valide (ISO).", 22 | number: "Veuillez fournir un numéro valide.", 23 | digits: "Veuillez fournir seulement des chiffres.", 24 | creditcard: "Veuillez fournir un numéro de carte de crédit valide.", 25 | equalTo: "Veuillez fournir encore la même valeur.", 26 | notEqualTo: "Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.", 27 | extension: "Veuillez fournir une valeur avec une extension valide.", 28 | maxlength: $.validator.format( "Veuillez fournir au plus {0} caractères." ), 29 | minlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ), 30 | rangelength: $.validator.format( "Veuillez fournir une valeur qui contient entre {0} et {1} caractères." ), 31 | range: $.validator.format( "Veuillez fournir une valeur entre {0} et {1}." ), 32 | max: $.validator.format( "Veuillez fournir une valeur inférieure ou égale à {0}." ), 33 | min: $.validator.format( "Veuillez fournir une valeur supérieure ou égale à {0}." ), 34 | step: $.validator.format( "Veuillez fournir une valeur multiple de {0}." ), 35 | maxWords: $.validator.format( "Veuillez fournir au plus {0} mots." ), 36 | minWords: $.validator.format( "Veuillez fournir au moins {0} mots." ), 37 | rangeWords: $.validator.format( "Veuillez fournir entre {0} et {1} mots." ), 38 | letterswithbasicpunc: "Veuillez fournir seulement des lettres et des signes de ponctuation.", 39 | alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.", 40 | lettersonly: "Veuillez fournir seulement des lettres.", 41 | nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.", 42 | ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.", 43 | integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.", 44 | vinUS: "Veuillez fournir un numéro d'identification du véhicule (VIN).", 45 | dateITA: "Veuillez fournir une date valide.", 46 | time: "Veuillez fournir une heure valide entre 00:00 et 23:59.", 47 | phoneUS: "Veuillez fournir un numéro de téléphone valide.", 48 | phoneUK: "Veuillez fournir un numéro de téléphone valide.", 49 | mobileUK: "Veuillez fournir un numéro de téléphone mobile valide.", 50 | strippedminlength: $.validator.format( "Veuillez fournir au moins {0} caractères." ), 51 | email2: "Veuillez fournir une adresse électronique valide.", 52 | url2: "Veuillez fournir une adresse URL valide.", 53 | creditcardtypes: "Veuillez fournir un numéro de carte de crédit valide.", 54 | ipv4: "Veuillez fournir une adresse IP v4 valide.", 55 | ipv6: "Veuillez fournir une adresse IP v6 valide.", 56 | require_from_group: $.validator.format( "Veuillez fournir au moins {0} de ces champs." ), 57 | nifES: "Veuillez fournir un numéro NIF valide.", 58 | nieES: "Veuillez fournir un numéro NIE valide.", 59 | cifES: "Veuillez fournir un numéro CIF valide.", 60 | postalCodeCA: "Veuillez fournir un code postal valide." 61 | } ); 62 | return $; 63 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_de.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: DE (German, Deutsch) 14 | */ 15 | $.extend( $.validator.messages, { 16 | required: "Dieses Feld ist ein Pflichtfeld.", 17 | maxlength: $.validator.format( "Geben Sie bitte maximal {0} Zeichen ein." ), 18 | minlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), 19 | rangelength: $.validator.format( "Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein." ), 20 | email: "Geben Sie bitte eine gültige E-Mail-Adresse ein.", 21 | url: "Geben Sie bitte eine gültige URL ein.", 22 | date: "Geben Sie bitte ein gültiges Datum ein.", 23 | number: "Geben Sie bitte eine Nummer ein.", 24 | digits: "Geben Sie bitte nur Ziffern ein.", 25 | equalTo: "Wiederholen Sie bitte denselben Wert.", 26 | range: $.validator.format( "Geben Sie bitte einen Wert zwischen {0} und {1} ein." ), 27 | max: $.validator.format( "Geben Sie bitte einen Wert kleiner oder gleich {0} ein." ), 28 | min: $.validator.format( "Geben Sie bitte einen Wert größer oder gleich {0} ein." ), 29 | creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.", 30 | remote: "Korrigieren Sie bitte dieses Feld.", 31 | dateISO: "Geben Sie bitte ein gültiges Datum ein (ISO-Format).", 32 | step: $.validator.format( "Geben Sie bitte ein Vielfaches von {0} ein." ), 33 | maxWords: $.validator.format( "Geben Sie bitte {0} Wörter oder weniger ein." ), 34 | minWords: $.validator.format( "Geben Sie bitte mindestens {0} Wörter ein." ), 35 | rangeWords: $.validator.format( "Geben Sie bitte zwischen {0} und {1} Wörtern ein." ), 36 | accept: "Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.", 37 | alphanumeric: "Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.", 38 | bankaccountNL: "Geben Sie bitte eine gültige Kontonummer ein.", 39 | bankorgiroaccountNL: "Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.", 40 | bic: "Geben Sie bitte einen gültigen BIC-Code ein.", 41 | cifES: "Geben Sie bitte eine gültige CIF-Nummer ein.", 42 | cpfBR: "Geben Sie bitte eine gültige CPF-Nummer ein.", 43 | creditcardtypes: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.", 44 | currency: "Geben Sie bitte eine gültige Währung ein.", 45 | extension: "Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.", 46 | giroaccountNL: "Geben Sie bitte eine gültige Girokontonummer ein.", 47 | iban: "Geben Sie bitte eine gültige IBAN ein.", 48 | integer: "Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.", 49 | ipv4: "Geben Sie bitte eine gültige IPv4-Adresse ein.", 50 | ipv6: "Geben Sie bitte eine gültige IPv6-Adresse ein.", 51 | lettersonly: "Geben Sie bitte nur Buchstaben ein.", 52 | letterswithbasicpunc: "Geben Sie bitte nur Buchstaben oder Interpunktion ein.", 53 | mobileNL: "Geben Sie bitte eine gültige Handynummer ein.", 54 | mobileUK: "Geben Sie bitte eine gültige Handynummer ein.", 55 | netmask: "Geben Sie bitte eine gültige Netzmaske ein.", 56 | nieES: "Geben Sie bitte eine gültige NIE-Nummer ein.", 57 | nifES: "Geben Sie bitte eine gültige NIF-Nummer ein.", 58 | nipPL: "Geben Sie bitte eine gültige NIP-Nummer ein.", 59 | notEqualTo: "Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.", 60 | nowhitespace: "Kein Leerzeichen bitte.", 61 | pattern: "Ungültiges Format.", 62 | phoneNL: "Geben Sie bitte eine gültige Telefonnummer ein.", 63 | phonesUK: "Geben Sie bitte eine gültige britische Telefonnummer ein.", 64 | phoneUK: "Geben Sie bitte eine gültige Telefonnummer ein.", 65 | phoneUS: "Geben Sie bitte eine gültige Telefonnummer ein.", 66 | postalcodeBR: "Geben Sie bitte eine gültige brasilianische Postleitzahl ein.", 67 | postalCodeCA: "Geben Sie bitte eine gültige kanadische Postleitzahl ein.", 68 | postalcodeIT: "Geben Sie bitte eine gültige italienische Postleitzahl ein.", 69 | postalcodeNL: "Geben Sie bitte eine gültige niederländische Postleitzahl ein.", 70 | postcodeUK: "Geben Sie bitte eine gültige britische Postleitzahl ein.", 71 | require_from_group: $.validator.format( "Füllen Sie bitte mindestens {0} dieser Felder aus." ), 72 | skip_or_fill_minimum: $.validator.format( "Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus." ), 73 | stateUS: "Geben Sie bitte einen gültigen US-Bundesstaat ein.", 74 | strippedminlength: $.validator.format( "Geben Sie bitte mindestens {0} Zeichen ein." ), 75 | time: "Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.", 76 | time12h: "Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.", 77 | vinUS: "Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.", 78 | zipcodeUS: "Die angegebene US-Postleitzahl ist ungültig.", 79 | ziprange: "Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen." 80 | } ); 81 | return $; 82 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.localization/messages_pt_BR.js: -------------------------------------------------------------------------------- 1 | (function( factory ) { 2 | if ( typeof define === "function" && define.amd ) { 3 | define( ["jquery", "../jquery.validate"], factory ); 4 | } else if (typeof module === "object" && module.exports) { 5 | module.exports = factory( require( "jquery" ) ); 6 | } else { 7 | factory( jQuery ); 8 | } 9 | }(function( $ ) { 10 | 11 | /* 12 | * Translated default messages for the jQuery validation plugin. 13 | * Locale: PT (Portuguese; português) 14 | * Region: BR (Brazil) 15 | */ 16 | $.extend( $.validator.messages, { 17 | 18 | // Core 19 | required: "Este campo é requerido.", 20 | remote: "Por favor, corrija este campo.", 21 | email: "Por favor, forneça um endereço de email válido.", 22 | url: "Por favor, forneça uma URL válida.", 23 | date: "Por favor, forneça uma data válida.", 24 | dateISO: "Por favor, forneça uma data válida (ISO).", 25 | number: "Por favor, forneça um número válido.", 26 | digits: "Por favor, forneça somente dígitos.", 27 | creditcard: "Por favor, forneça um cartão de crédito válido.", 28 | equalTo: "Por favor, forneça o mesmo valor novamente.", 29 | maxlength: $.validator.format( "Por favor, forneça não mais que {0} caracteres." ), 30 | minlength: $.validator.format( "Por favor, forneça ao menos {0} caracteres." ), 31 | rangelength: $.validator.format( "Por favor, forneça um valor entre {0} e {1} caracteres de comprimento." ), 32 | range: $.validator.format( "Por favor, forneça um valor entre {0} e {1}." ), 33 | max: $.validator.format( "Por favor, forneça um valor menor ou igual a {0}." ), 34 | min: $.validator.format( "Por favor, forneça um valor maior ou igual a {0}." ), 35 | step: $.validator.format( "Por favor, forneça um valor múltiplo de {0}." ), 36 | 37 | // Metodos Adicionais 38 | maxWords: $.validator.format( "Por favor, forneça com {0} palavras ou menos." ), 39 | minWords: $.validator.format( "Por favor, forneça pelo menos {0} palavras." ), 40 | rangeWords: $.validator.format( "Por favor, forneça entre {0} e {1} palavras." ), 41 | accept: "Por favor, forneça um tipo válido.", 42 | alphanumeric: "Por favor, forneça somente com letras, números e sublinhados.", 43 | bankaccountNL: "Por favor, forneça com um número de conta bancária válida.", 44 | bankorgiroaccountNL: "Por favor, forneça um banco válido ou número de conta.", 45 | bic: "Por favor, forneça um código BIC válido.", 46 | cifES: "Por favor, forneça um código CIF válido.", 47 | creditcardtypes: "Por favor, forneça um número de cartão de crédito válido.", 48 | currency: "Por favor, forneça uma moeda válida.", 49 | dateFA: "Por favor, forneça uma data correta.", 50 | dateITA: "Por favor, forneça uma data correta.", 51 | dateNL: "Por favor, forneça uma data correta.", 52 | extension: "Por favor, forneça um valor com uma extensão válida.", 53 | giroaccountNL: "Por favor, forneça um número de conta corrente válido.", 54 | iban: "Por favor, forneça um código IBAN válido.", 55 | integer: "Por favor, forneça um número não decimal.", 56 | ipv4: "Por favor, forneça um IPv4 válido.", 57 | ipv6: "Por favor, forneça um IPv6 válido.", 58 | lettersonly: "Por favor, forneça apenas com letras.", 59 | letterswithbasicpunc: "Por favor, forneça apenas letras ou pontuações.", 60 | mobileNL: "Por favor, forneceça um número válido de telefone.", 61 | mobileUK: "Por favor, forneceça um número válido de telefone.", 62 | nieES: "Por favor, forneça um NIE válido.", 63 | nifES: "Por favor, forneça um NIF válido.", 64 | nowhitespace: "Por favor, não utilize espaços em branco.", 65 | pattern: "O formato fornecido é inválido.", 66 | phoneNL: "Por favor, forneça um número de telefone válido.", 67 | phoneUK: "Por favor, forneça um número de telefone válido.", 68 | phoneUS: "Por favor, forneça um número de telefone válido.", 69 | phonesUK: "Por favor, forneça um número de telefone válido.", 70 | postalCodeCA: "Por favor, forneça um número de código postal válido.", 71 | postalcodeIT: "Por favor, forneça um número de código postal válido.", 72 | postalcodeNL: "Por favor, forneça um número de código postal válido.", 73 | postcodeUK: "Por favor, forneça um número de código postal válido.", 74 | postalcodeBR: "Por favor, forneça um CEP válido.", 75 | require_from_group: $.validator.format( "Por favor, forneça pelo menos {0} destes campos." ), 76 | skip_or_fill_minimum: $.validator.format( "Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles." ), 77 | stateUS: "Por favor, forneça um estado válido.", 78 | strippedminlength: $.validator.format( "Por favor, forneça pelo menos {0} caracteres." ), 79 | time: "Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.", 80 | time12h: "Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.", 81 | url2: "Por favor, forneça uma URL válida.", 82 | vinUS: "O número de identificação de veículo informado (VIN) é inválido.", 83 | zipcodeUS: "Por favor, forneça um código postal americano válido.", 84 | ziprange: "O código postal deve estar entre 902xx-xxxx e 905xx-xxxx", 85 | cpfBR: "Por favor, forneça um CPF válido.", 86 | nisBR: "Por favor, forneça um NIS/PIS válido", 87 | cnhBR: "Por favor, forneça um CNH válido.", 88 | cnpjBR: "Por favor, forneça um CNPJ válido." 89 | } ); 90 | return $; 91 | })); -------------------------------------------------------------------------------- /vendor/assets/javascripts/jquery.validate.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Validation Plugin v1.19.0 3 | * 4 | * https://jqueryvalidation.org/ 5 | * 6 | * Copyright (c) 2018 Jörn Zaefferer 7 | * Released under the MIT license 8 | */ 9 | (function( factory ) { 10 | if ( typeof define === "function" && define.amd ) { 11 | define( ["jquery"], factory ); 12 | } else if (typeof module === "object" && module.exports) { 13 | module.exports = factory( require( "jquery" ) ); 14 | } else { 15 | factory( jQuery ); 16 | } 17 | }(function( $ ) { 18 | 19 | $.extend( $.fn, { 20 | 21 | // https://jqueryvalidation.org/validate/ 22 | validate: function( options ) { 23 | 24 | // If nothing is selected, return nothing; can't chain anyway 25 | if ( !this.length ) { 26 | if ( options && options.debug && window.console ) { 27 | console.warn( "Nothing selected, can't validate, returning nothing." ); 28 | } 29 | return; 30 | } 31 | 32 | // Check if a validator for this form was already created 33 | var validator = $.data( this[ 0 ], "validator" ); 34 | if ( validator ) { 35 | return validator; 36 | } 37 | 38 | // Add novalidate tag if HTML5. 39 | this.attr( "novalidate", "novalidate" ); 40 | 41 | validator = new $.validator( options, this[ 0 ] ); 42 | $.data( this[ 0 ], "validator", validator ); 43 | 44 | if ( validator.settings.onsubmit ) { 45 | 46 | this.on( "click.validate", ":submit", function( event ) { 47 | 48 | // Track the used submit button to properly handle scripted 49 | // submits later. 50 | validator.submitButton = event.currentTarget; 51 | 52 | // Allow suppressing validation by adding a cancel class to the submit button 53 | if ( $( this ).hasClass( "cancel" ) ) { 54 | validator.cancelSubmit = true; 55 | } 56 | 57 | // Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button 58 | if ( $( this ).attr( "formnovalidate" ) !== undefined ) { 59 | validator.cancelSubmit = true; 60 | } 61 | } ); 62 | 63 | // Validate the form on submit 64 | this.on( "submit.validate", function( event ) { 65 | if ( validator.settings.debug ) { 66 | 67 | // Prevent form submit to be able to see console output 68 | event.preventDefault(); 69 | } 70 | 71 | function handle() { 72 | var hidden, result; 73 | 74 | // Insert a hidden input as a replacement for the missing submit button 75 | // The hidden input is inserted in two cases: 76 | // - A user defined a `submitHandler` 77 | // - There was a pending request due to `remote` method and `stopRequest()` 78 | // was called to submit the form in case it's valid 79 | if ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) { 80 | hidden = $( "" ) 81 | .attr( "name", validator.submitButton.name ) 82 | .val( $( validator.submitButton ).val() ) 83 | .appendTo( validator.currentForm ); 84 | } 85 | 86 | if ( validator.settings.submitHandler && !validator.settings.debug ) { 87 | result = validator.settings.submitHandler.call( validator, validator.currentForm, event ); 88 | if ( hidden ) { 89 | 90 | // And clean up afterwards; thanks to no-block-scope, hidden can be referenced 91 | hidden.remove(); 92 | } 93 | if ( result !== undefined ) { 94 | return result; 95 | } 96 | return false; 97 | } 98 | return true; 99 | } 100 | 101 | // Prevent submit for invalid forms or custom submit handlers 102 | if ( validator.cancelSubmit ) { 103 | validator.cancelSubmit = false; 104 | return handle(); 105 | } 106 | if ( validator.form() ) { 107 | if ( validator.pendingRequest ) { 108 | validator.formSubmitted = true; 109 | return false; 110 | } 111 | return handle(); 112 | } else { 113 | validator.focusInvalid(); 114 | return false; 115 | } 116 | } ); 117 | } 118 | 119 | return validator; 120 | }, 121 | 122 | // https://jqueryvalidation.org/valid/ 123 | valid: function() { 124 | var valid, validator, errorList; 125 | 126 | if ( $( this[ 0 ] ).is( "form" ) ) { 127 | valid = this.validate().form(); 128 | } else { 129 | errorList = []; 130 | valid = true; 131 | validator = $( this[ 0 ].form ).validate(); 132 | this.each( function() { 133 | valid = validator.element( this ) && valid; 134 | if ( !valid ) { 135 | errorList = errorList.concat( validator.errorList ); 136 | } 137 | } ); 138 | validator.errorList = errorList; 139 | } 140 | return valid; 141 | }, 142 | 143 | // https://jqueryvalidation.org/rules/ 144 | rules: function( command, argument ) { 145 | var element = this[ 0 ], 146 | isContentEditable = typeof this.attr( "contenteditable" ) !== "undefined" && this.attr( "contenteditable" ) !== "false", 147 | settings, staticRules, existingRules, data, param, filtered; 148 | 149 | // If nothing is selected, return empty object; can't chain anyway 150 | if ( element == null ) { 151 | return; 152 | } 153 | 154 | if ( !element.form && isContentEditable ) { 155 | element.form = this.closest( "form" )[ 0 ]; 156 | element.name = this.attr( "name" ); 157 | } 158 | 159 | if ( element.form == null ) { 160 | return; 161 | } 162 | 163 | if ( command ) { 164 | settings = $.data( element.form, "validator" ).settings; 165 | staticRules = settings.rules; 166 | existingRules = $.validator.staticRules( element ); 167 | switch ( command ) { 168 | case "add": 169 | $.extend( existingRules, $.validator.normalizeRule( argument ) ); 170 | 171 | // Remove messages from rules, but allow them to be set separately 172 | delete existingRules.messages; 173 | staticRules[ element.name ] = existingRules; 174 | if ( argument.messages ) { 175 | settings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages ); 176 | } 177 | break; 178 | case "remove": 179 | if ( !argument ) { 180 | delete staticRules[ element.name ]; 181 | return existingRules; 182 | } 183 | filtered = {}; 184 | $.each( argument.split( /\s/ ), function( index, method ) { 185 | filtered[ method ] = existingRules[ method ]; 186 | delete existingRules[ method ]; 187 | } ); 188 | return filtered; 189 | } 190 | } 191 | 192 | data = $.validator.normalizeRules( 193 | $.extend( 194 | {}, 195 | $.validator.classRules( element ), 196 | $.validator.attributeRules( element ), 197 | $.validator.dataRules( element ), 198 | $.validator.staticRules( element ) 199 | ), element ); 200 | 201 | // Make sure required is at front 202 | if ( data.required ) { 203 | param = data.required; 204 | delete data.required; 205 | data = $.extend( { required: param }, data ); 206 | } 207 | 208 | // Make sure remote is at back 209 | if ( data.remote ) { 210 | param = data.remote; 211 | delete data.remote; 212 | data = $.extend( data, { remote: param } ); 213 | } 214 | 215 | return data; 216 | } 217 | } ); 218 | 219 | // Custom selectors 220 | $.extend( $.expr.pseudos || $.expr[ ":" ], { // '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support 221 | 222 | // https://jqueryvalidation.org/blank-selector/ 223 | blank: function( a ) { 224 | return !$.trim( "" + $( a ).val() ); 225 | }, 226 | 227 | // https://jqueryvalidation.org/filled-selector/ 228 | filled: function( a ) { 229 | var val = $( a ).val(); 230 | return val !== null && !!$.trim( "" + val ); 231 | }, 232 | 233 | // https://jqueryvalidation.org/unchecked-selector/ 234 | unchecked: function( a ) { 235 | return !$( a ).prop( "checked" ); 236 | } 237 | } ); 238 | 239 | // Constructor for validator 240 | $.validator = function( options, form ) { 241 | this.settings = $.extend( true, {}, $.validator.defaults, options ); 242 | this.currentForm = form; 243 | this.init(); 244 | }; 245 | 246 | // https://jqueryvalidation.org/jQuery.validator.format/ 247 | $.validator.format = function( source, params ) { 248 | if ( arguments.length === 1 ) { 249 | return function() { 250 | var args = $.makeArray( arguments ); 251 | args.unshift( source ); 252 | return $.validator.format.apply( this, args ); 253 | }; 254 | } 255 | if ( params === undefined ) { 256 | return source; 257 | } 258 | if ( arguments.length > 2 && params.constructor !== Array ) { 259 | params = $.makeArray( arguments ).slice( 1 ); 260 | } 261 | if ( params.constructor !== Array ) { 262 | params = [ params ]; 263 | } 264 | $.each( params, function( i, n ) { 265 | source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() { 266 | return n; 267 | } ); 268 | } ); 269 | return source; 270 | }; 271 | 272 | $.extend( $.validator, { 273 | 274 | defaults: { 275 | messages: {}, 276 | groups: {}, 277 | rules: {}, 278 | errorClass: "error", 279 | pendingClass: "pending", 280 | validClass: "valid", 281 | errorElement: "label", 282 | focusCleanup: false, 283 | focusInvalid: true, 284 | errorContainer: $( [] ), 285 | errorLabelContainer: $( [] ), 286 | onsubmit: true, 287 | ignore: ":hidden", 288 | ignoreTitle: false, 289 | onfocusin: function( element ) { 290 | this.lastActive = element; 291 | 292 | // Hide error label and remove error class on focus if enabled 293 | if ( this.settings.focusCleanup ) { 294 | if ( this.settings.unhighlight ) { 295 | this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); 296 | } 297 | this.hideThese( this.errorsFor( element ) ); 298 | } 299 | }, 300 | onfocusout: function( element ) { 301 | if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) { 302 | this.element( element ); 303 | } 304 | }, 305 | onkeyup: function( element, event ) { 306 | 307 | // Avoid revalidate the field when pressing one of the following keys 308 | // Shift => 16 309 | // Ctrl => 17 310 | // Alt => 18 311 | // Caps lock => 20 312 | // End => 35 313 | // Home => 36 314 | // Left arrow => 37 315 | // Up arrow => 38 316 | // Right arrow => 39 317 | // Down arrow => 40 318 | // Insert => 45 319 | // Num lock => 144 320 | // AltGr key => 225 321 | var excludedKeys = [ 322 | 16, 17, 18, 20, 35, 36, 37, 323 | 38, 39, 40, 45, 144, 225 324 | ]; 325 | 326 | if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) { 327 | return; 328 | } else if ( element.name in this.submitted || element.name in this.invalid ) { 329 | this.element( element ); 330 | } 331 | }, 332 | onclick: function( element ) { 333 | 334 | // Click on selects, radiobuttons and checkboxes 335 | if ( element.name in this.submitted ) { 336 | this.element( element ); 337 | 338 | // Or option elements, check parent select in that case 339 | } else if ( element.parentNode.name in this.submitted ) { 340 | this.element( element.parentNode ); 341 | } 342 | }, 343 | highlight: function( element, errorClass, validClass ) { 344 | if ( element.type === "radio" ) { 345 | this.findByName( element.name ).addClass( errorClass ).removeClass( validClass ); 346 | } else { 347 | $( element ).addClass( errorClass ).removeClass( validClass ); 348 | } 349 | }, 350 | unhighlight: function( element, errorClass, validClass ) { 351 | if ( element.type === "radio" ) { 352 | this.findByName( element.name ).removeClass( errorClass ).addClass( validClass ); 353 | } else { 354 | $( element ).removeClass( errorClass ).addClass( validClass ); 355 | } 356 | } 357 | }, 358 | 359 | // https://jqueryvalidation.org/jQuery.validator.setDefaults/ 360 | setDefaults: function( settings ) { 361 | $.extend( $.validator.defaults, settings ); 362 | }, 363 | 364 | messages: { 365 | required: "This field is required.", 366 | remote: "Please fix this field.", 367 | email: "Please enter a valid email address.", 368 | url: "Please enter a valid URL.", 369 | date: "Please enter a valid date.", 370 | dateISO: "Please enter a valid date (ISO).", 371 | number: "Please enter a valid number.", 372 | digits: "Please enter only digits.", 373 | equalTo: "Please enter the same value again.", 374 | maxlength: $.validator.format( "Please enter no more than {0} characters." ), 375 | minlength: $.validator.format( "Please enter at least {0} characters." ), 376 | rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ), 377 | range: $.validator.format( "Please enter a value between {0} and {1}." ), 378 | max: $.validator.format( "Please enter a value less than or equal to {0}." ), 379 | min: $.validator.format( "Please enter a value greater than or equal to {0}." ), 380 | step: $.validator.format( "Please enter a multiple of {0}." ) 381 | }, 382 | 383 | autoCreateRanges: false, 384 | 385 | prototype: { 386 | 387 | init: function() { 388 | this.labelContainer = $( this.settings.errorLabelContainer ); 389 | this.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm ); 390 | this.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer ); 391 | this.submitted = {}; 392 | this.valueCache = {}; 393 | this.pendingRequest = 0; 394 | this.pending = {}; 395 | this.invalid = {}; 396 | this.reset(); 397 | 398 | var currentForm = this.currentForm, 399 | groups = ( this.groups = {} ), 400 | rules; 401 | $.each( this.settings.groups, function( key, value ) { 402 | if ( typeof value === "string" ) { 403 | value = value.split( /\s/ ); 404 | } 405 | $.each( value, function( index, name ) { 406 | groups[ name ] = key; 407 | } ); 408 | } ); 409 | rules = this.settings.rules; 410 | $.each( rules, function( key, value ) { 411 | rules[ key ] = $.validator.normalizeRule( value ); 412 | } ); 413 | 414 | function delegate( event ) { 415 | var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false"; 416 | 417 | // Set form expando on contenteditable 418 | if ( !this.form && isContentEditable ) { 419 | this.form = $( this ).closest( "form" )[ 0 ]; 420 | this.name = $( this ).attr( "name" ); 421 | } 422 | 423 | // Ignore the element if it belongs to another form. This will happen mainly 424 | // when setting the `form` attribute of an input to the id of another form. 425 | if ( currentForm !== this.form ) { 426 | return; 427 | } 428 | 429 | var validator = $.data( this.form, "validator" ), 430 | eventType = "on" + event.type.replace( /^validate/, "" ), 431 | settings = validator.settings; 432 | if ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) { 433 | settings[ eventType ].call( validator, this, event ); 434 | } 435 | } 436 | 437 | $( this.currentForm ) 438 | .on( "focusin.validate focusout.validate keyup.validate", 439 | ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " + 440 | "[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " + 441 | "[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " + 442 | "[type='radio'], [type='checkbox'], [contenteditable], [type='button']", delegate ) 443 | 444 | // Support: Chrome, oldIE 445 | // "select" is provided as event.target when clicking a option 446 | .on( "click.validate", "select, option, [type='radio'], [type='checkbox']", delegate ); 447 | 448 | if ( this.settings.invalidHandler ) { 449 | $( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler ); 450 | } 451 | }, 452 | 453 | // https://jqueryvalidation.org/Validator.form/ 454 | form: function() { 455 | this.checkForm(); 456 | $.extend( this.submitted, this.errorMap ); 457 | this.invalid = $.extend( {}, this.errorMap ); 458 | if ( !this.valid() ) { 459 | $( this.currentForm ).triggerHandler( "invalid-form", [ this ] ); 460 | } 461 | this.showErrors(); 462 | return this.valid(); 463 | }, 464 | 465 | checkForm: function() { 466 | this.prepareForm(); 467 | for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) { 468 | this.check( elements[ i ] ); 469 | } 470 | return this.valid(); 471 | }, 472 | 473 | // https://jqueryvalidation.org/Validator.element/ 474 | element: function( element ) { 475 | var cleanElement = this.clean( element ), 476 | checkElement = this.validationTargetFor( cleanElement ), 477 | v = this, 478 | result = true, 479 | rs, group; 480 | 481 | if ( checkElement === undefined ) { 482 | delete this.invalid[ cleanElement.name ]; 483 | } else { 484 | this.prepareElement( checkElement ); 485 | this.currentElements = $( checkElement ); 486 | 487 | // If this element is grouped, then validate all group elements already 488 | // containing a value 489 | group = this.groups[ checkElement.name ]; 490 | if ( group ) { 491 | $.each( this.groups, function( name, testgroup ) { 492 | if ( testgroup === group && name !== checkElement.name ) { 493 | cleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) ); 494 | if ( cleanElement && cleanElement.name in v.invalid ) { 495 | v.currentElements.push( cleanElement ); 496 | result = v.check( cleanElement ) && result; 497 | } 498 | } 499 | } ); 500 | } 501 | 502 | rs = this.check( checkElement ) !== false; 503 | result = result && rs; 504 | if ( rs ) { 505 | this.invalid[ checkElement.name ] = false; 506 | } else { 507 | this.invalid[ checkElement.name ] = true; 508 | } 509 | 510 | if ( !this.numberOfInvalids() ) { 511 | 512 | // Hide error containers on last error 513 | this.toHide = this.toHide.add( this.containers ); 514 | } 515 | this.showErrors(); 516 | 517 | // Add aria-invalid status for screen readers 518 | $( element ).attr( "aria-invalid", !rs ); 519 | } 520 | 521 | return result; 522 | }, 523 | 524 | // https://jqueryvalidation.org/Validator.showErrors/ 525 | showErrors: function( errors ) { 526 | if ( errors ) { 527 | var validator = this; 528 | 529 | // Add items to error list and map 530 | $.extend( this.errorMap, errors ); 531 | this.errorList = $.map( this.errorMap, function( message, name ) { 532 | return { 533 | message: message, 534 | element: validator.findByName( name )[ 0 ] 535 | }; 536 | } ); 537 | 538 | // Remove items from success list 539 | this.successList = $.grep( this.successList, function( element ) { 540 | return !( element.name in errors ); 541 | } ); 542 | } 543 | if ( this.settings.showErrors ) { 544 | this.settings.showErrors.call( this, this.errorMap, this.errorList ); 545 | } else { 546 | this.defaultShowErrors(); 547 | } 548 | }, 549 | 550 | // https://jqueryvalidation.org/Validator.resetForm/ 551 | resetForm: function() { 552 | if ( $.fn.resetForm ) { 553 | $( this.currentForm ).resetForm(); 554 | } 555 | this.invalid = {}; 556 | this.submitted = {}; 557 | this.prepareForm(); 558 | this.hideErrors(); 559 | var elements = this.elements() 560 | .removeData( "previousValue" ) 561 | .removeAttr( "aria-invalid" ); 562 | 563 | this.resetElements( elements ); 564 | }, 565 | 566 | resetElements: function( elements ) { 567 | var i; 568 | 569 | if ( this.settings.unhighlight ) { 570 | for ( i = 0; elements[ i ]; i++ ) { 571 | this.settings.unhighlight.call( this, elements[ i ], 572 | this.settings.errorClass, "" ); 573 | this.findByName( elements[ i ].name ).removeClass( this.settings.validClass ); 574 | } 575 | } else { 576 | elements 577 | .removeClass( this.settings.errorClass ) 578 | .removeClass( this.settings.validClass ); 579 | } 580 | }, 581 | 582 | numberOfInvalids: function() { 583 | return this.objectLength( this.invalid ); 584 | }, 585 | 586 | objectLength: function( obj ) { 587 | /* jshint unused: false */ 588 | var count = 0, 589 | i; 590 | for ( i in obj ) { 591 | 592 | // This check allows counting elements with empty error 593 | // message as invalid elements 594 | if ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) { 595 | count++; 596 | } 597 | } 598 | return count; 599 | }, 600 | 601 | hideErrors: function() { 602 | this.hideThese( this.toHide ); 603 | }, 604 | 605 | hideThese: function( errors ) { 606 | errors.not( this.containers ).text( "" ); 607 | this.addWrapper( errors ).hide(); 608 | }, 609 | 610 | valid: function() { 611 | return this.size() === 0; 612 | }, 613 | 614 | size: function() { 615 | return this.errorList.length; 616 | }, 617 | 618 | focusInvalid: function() { 619 | if ( this.settings.focusInvalid ) { 620 | try { 621 | $( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] ) 622 | .filter( ":visible" ) 623 | .focus() 624 | 625 | // Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find 626 | .trigger( "focusin" ); 627 | } catch ( e ) { 628 | 629 | // Ignore IE throwing errors when focusing hidden elements 630 | } 631 | } 632 | }, 633 | 634 | findLastActive: function() { 635 | var lastActive = this.lastActive; 636 | return lastActive && $.grep( this.errorList, function( n ) { 637 | return n.element.name === lastActive.name; 638 | } ).length === 1 && lastActive; 639 | }, 640 | 641 | elements: function() { 642 | var validator = this, 643 | rulesCache = {}; 644 | 645 | // Select all valid inputs inside the form (no submit or reset buttons) 646 | return $( this.currentForm ) 647 | .find( "input, select, textarea, [contenteditable]" ) 648 | .not( ":submit, :reset, :image, :disabled" ) 649 | .not( this.settings.ignore ) 650 | .filter( function() { 651 | var name = this.name || $( this ).attr( "name" ); // For contenteditable 652 | var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false"; 653 | 654 | if ( !name && validator.settings.debug && window.console ) { 655 | console.error( "%o has no name assigned", this ); 656 | } 657 | 658 | // Set form expando on contenteditable 659 | if ( isContentEditable ) { 660 | this.form = $( this ).closest( "form" )[ 0 ]; 661 | this.name = name; 662 | } 663 | 664 | // Ignore elements that belong to other/nested forms 665 | if ( this.form !== validator.currentForm ) { 666 | return false; 667 | } 668 | 669 | // Select only the first element for each name, and only those with rules specified 670 | if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { 671 | return false; 672 | } 673 | 674 | rulesCache[ name ] = true; 675 | return true; 676 | } ); 677 | }, 678 | 679 | clean: function( selector ) { 680 | return $( selector )[ 0 ]; 681 | }, 682 | 683 | errors: function() { 684 | var errorClass = this.settings.errorClass.split( " " ).join( "." ); 685 | return $( this.settings.errorElement + "." + errorClass, this.errorContext ); 686 | }, 687 | 688 | resetInternals: function() { 689 | this.successList = []; 690 | this.errorList = []; 691 | this.errorMap = {}; 692 | this.toShow = $( [] ); 693 | this.toHide = $( [] ); 694 | }, 695 | 696 | reset: function() { 697 | this.resetInternals(); 698 | this.currentElements = $( [] ); 699 | }, 700 | 701 | prepareForm: function() { 702 | this.reset(); 703 | this.toHide = this.errors().add( this.containers ); 704 | }, 705 | 706 | prepareElement: function( element ) { 707 | this.reset(); 708 | this.toHide = this.errorsFor( element ); 709 | }, 710 | 711 | elementValue: function( element ) { 712 | var $element = $( element ), 713 | type = element.type, 714 | isContentEditable = typeof $element.attr( "contenteditable" ) !== "undefined" && $element.attr( "contenteditable" ) !== "false", 715 | val, idx; 716 | 717 | if ( type === "radio" || type === "checkbox" ) { 718 | return this.findByName( element.name ).filter( ":checked" ).val(); 719 | } else if ( type === "number" && typeof element.validity !== "undefined" ) { 720 | return element.validity.badInput ? "NaN" : $element.val(); 721 | } 722 | 723 | if ( isContentEditable ) { 724 | val = $element.text(); 725 | } else { 726 | val = $element.val(); 727 | } 728 | 729 | if ( type === "file" ) { 730 | 731 | // Modern browser (chrome & safari) 732 | if ( val.substr( 0, 12 ) === "C:\\fakepath\\" ) { 733 | return val.substr( 12 ); 734 | } 735 | 736 | // Legacy browsers 737 | // Unix-based path 738 | idx = val.lastIndexOf( "/" ); 739 | if ( idx >= 0 ) { 740 | return val.substr( idx + 1 ); 741 | } 742 | 743 | // Windows-based path 744 | idx = val.lastIndexOf( "\\" ); 745 | if ( idx >= 0 ) { 746 | return val.substr( idx + 1 ); 747 | } 748 | 749 | // Just the file name 750 | return val; 751 | } 752 | 753 | if ( typeof val === "string" ) { 754 | return val.replace( /\r/g, "" ); 755 | } 756 | return val; 757 | }, 758 | 759 | check: function( element ) { 760 | element = this.validationTargetFor( this.clean( element ) ); 761 | 762 | var rules = $( element ).rules(), 763 | rulesCount = $.map( rules, function( n, i ) { 764 | return i; 765 | } ).length, 766 | dependencyMismatch = false, 767 | val = this.elementValue( element ), 768 | result, method, rule, normalizer; 769 | 770 | // Prioritize the local normalizer defined for this element over the global one 771 | // if the former exists, otherwise user the global one in case it exists. 772 | if ( typeof rules.normalizer === "function" ) { 773 | normalizer = rules.normalizer; 774 | } else if ( typeof this.settings.normalizer === "function" ) { 775 | normalizer = this.settings.normalizer; 776 | } 777 | 778 | // If normalizer is defined, then call it to retreive the changed value instead 779 | // of using the real one. 780 | // Note that `this` in the normalizer is `element`. 781 | if ( normalizer ) { 782 | val = normalizer.call( element, val ); 783 | 784 | // Delete the normalizer from rules to avoid treating it as a pre-defined method. 785 | delete rules.normalizer; 786 | } 787 | 788 | for ( method in rules ) { 789 | rule = { method: method, parameters: rules[ method ] }; 790 | try { 791 | result = $.validator.methods[ method ].call( this, val, element, rule.parameters ); 792 | 793 | // If a method indicates that the field is optional and therefore valid, 794 | // don't mark it as valid when there are no other rules 795 | if ( result === "dependency-mismatch" && rulesCount === 1 ) { 796 | dependencyMismatch = true; 797 | continue; 798 | } 799 | dependencyMismatch = false; 800 | 801 | if ( result === "pending" ) { 802 | this.toHide = this.toHide.not( this.errorsFor( element ) ); 803 | return; 804 | } 805 | 806 | if ( !result ) { 807 | this.formatAndAdd( element, rule ); 808 | return false; 809 | } 810 | } catch ( e ) { 811 | if ( this.settings.debug && window.console ) { 812 | console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e ); 813 | } 814 | if ( e instanceof TypeError ) { 815 | e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method."; 816 | } 817 | 818 | throw e; 819 | } 820 | } 821 | if ( dependencyMismatch ) { 822 | return; 823 | } 824 | if ( this.objectLength( rules ) ) { 825 | this.successList.push( element ); 826 | } 827 | return true; 828 | }, 829 | 830 | // Return the custom message for the given element and validation method 831 | // specified in the element's HTML5 data attribute 832 | // return the generic message if present and no method specific message is present 833 | customDataMessage: function( element, method ) { 834 | return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() + 835 | method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" ); 836 | }, 837 | 838 | // Return the custom message for the given element name and validation method 839 | customMessage: function( name, method ) { 840 | var m = this.settings.messages[ name ]; 841 | return m && ( m.constructor === String ? m : m[ method ] ); 842 | }, 843 | 844 | // Return the first defined argument, allowing empty strings 845 | findDefined: function() { 846 | for ( var i = 0; i < arguments.length; i++ ) { 847 | if ( arguments[ i ] !== undefined ) { 848 | return arguments[ i ]; 849 | } 850 | } 851 | return undefined; 852 | }, 853 | 854 | // The second parameter 'rule' used to be a string, and extended to an object literal 855 | // of the following form: 856 | // rule = { 857 | // method: "method name", 858 | // parameters: "the given method parameters" 859 | // } 860 | // 861 | // The old behavior still supported, kept to maintain backward compatibility with 862 | // old code, and will be removed in the next major release. 863 | defaultMessage: function( element, rule ) { 864 | if ( typeof rule === "string" ) { 865 | rule = { method: rule }; 866 | } 867 | 868 | var message = this.findDefined( 869 | this.customMessage( element.name, rule.method ), 870 | this.customDataMessage( element, rule.method ), 871 | 872 | // 'title' is never undefined, so handle empty string as undefined 873 | !this.settings.ignoreTitle && element.title || undefined, 874 | $.validator.messages[ rule.method ], 875 | "Warning: No message defined for " + element.name + "" 876 | ), 877 | theregex = /\$?\{(\d+)\}/g; 878 | if ( typeof message === "function" ) { 879 | message = message.call( this, rule.parameters, element ); 880 | } else if ( theregex.test( message ) ) { 881 | message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters ); 882 | } 883 | 884 | return message; 885 | }, 886 | 887 | formatAndAdd: function( element, rule ) { 888 | var message = this.defaultMessage( element, rule ); 889 | 890 | this.errorList.push( { 891 | message: message, 892 | element: element, 893 | method: rule.method 894 | } ); 895 | 896 | this.errorMap[ element.name ] = message; 897 | this.submitted[ element.name ] = message; 898 | }, 899 | 900 | addWrapper: function( toToggle ) { 901 | if ( this.settings.wrapper ) { 902 | toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); 903 | } 904 | return toToggle; 905 | }, 906 | 907 | defaultShowErrors: function() { 908 | var i, elements, error; 909 | for ( i = 0; this.errorList[ i ]; i++ ) { 910 | error = this.errorList[ i ]; 911 | if ( this.settings.highlight ) { 912 | this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); 913 | } 914 | this.showLabel( error.element, error.message ); 915 | } 916 | if ( this.errorList.length ) { 917 | this.toShow = this.toShow.add( this.containers ); 918 | } 919 | if ( this.settings.success ) { 920 | for ( i = 0; this.successList[ i ]; i++ ) { 921 | this.showLabel( this.successList[ i ] ); 922 | } 923 | } 924 | if ( this.settings.unhighlight ) { 925 | for ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) { 926 | this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass ); 927 | } 928 | } 929 | this.toHide = this.toHide.not( this.toShow ); 930 | this.hideErrors(); 931 | this.addWrapper( this.toShow ).show(); 932 | }, 933 | 934 | validElements: function() { 935 | return this.currentElements.not( this.invalidElements() ); 936 | }, 937 | 938 | invalidElements: function() { 939 | return $( this.errorList ).map( function() { 940 | return this.element; 941 | } ); 942 | }, 943 | 944 | showLabel: function( element, message ) { 945 | var place, group, errorID, v, 946 | error = this.errorsFor( element ), 947 | elementID = this.idOrName( element ), 948 | describedBy = $( element ).attr( "aria-describedby" ); 949 | 950 | if ( error.length ) { 951 | 952 | // Refresh error/success class 953 | error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); 954 | 955 | // Replace message on existing label 956 | error.html( message ); 957 | } else { 958 | 959 | // Create error element 960 | error = $( "<" + this.settings.errorElement + ">" ) 961 | .attr( "id", elementID + "-error" ) 962 | .addClass( this.settings.errorClass ) 963 | .html( message || "" ); 964 | 965 | // Maintain reference to the element to be placed into the DOM 966 | place = error; 967 | if ( this.settings.wrapper ) { 968 | 969 | // Make sure the element is visible, even in IE 970 | // actually showing the wrapped element is handled elsewhere 971 | place = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent(); 972 | } 973 | if ( this.labelContainer.length ) { 974 | this.labelContainer.append( place ); 975 | } else if ( this.settings.errorPlacement ) { 976 | this.settings.errorPlacement.call( this, place, $( element ) ); 977 | } else { 978 | place.insertAfter( element ); 979 | } 980 | 981 | // Link error back to the element 982 | if ( error.is( "label" ) ) { 983 | 984 | // If the error is a label, then associate using 'for' 985 | error.attr( "for", elementID ); 986 | 987 | // If the element is not a child of an associated label, then it's necessary 988 | // to explicitly apply aria-describedby 989 | } else if ( error.parents( "label[for='" + this.escapeCssMeta( elementID ) + "']" ).length === 0 ) { 990 | errorID = error.attr( "id" ); 991 | 992 | // Respect existing non-error aria-describedby 993 | if ( !describedBy ) { 994 | describedBy = errorID; 995 | } else if ( !describedBy.match( new RegExp( "\\b" + this.escapeCssMeta( errorID ) + "\\b" ) ) ) { 996 | 997 | // Add to end of list if not already present 998 | describedBy += " " + errorID; 999 | } 1000 | $( element ).attr( "aria-describedby", describedBy ); 1001 | 1002 | // If this element is grouped, then assign to all elements in the same group 1003 | group = this.groups[ element.name ]; 1004 | if ( group ) { 1005 | v = this; 1006 | $.each( v.groups, function( name, testgroup ) { 1007 | if ( testgroup === group ) { 1008 | $( "[name='" + v.escapeCssMeta( name ) + "']", v.currentForm ) 1009 | .attr( "aria-describedby", error.attr( "id" ) ); 1010 | } 1011 | } ); 1012 | } 1013 | } 1014 | } 1015 | if ( !message && this.settings.success ) { 1016 | error.text( "" ); 1017 | if ( typeof this.settings.success === "string" ) { 1018 | error.addClass( this.settings.success ); 1019 | } else { 1020 | this.settings.success( error, element ); 1021 | } 1022 | } 1023 | this.toShow = this.toShow.add( error ); 1024 | }, 1025 | 1026 | errorsFor: function( element ) { 1027 | var name = this.escapeCssMeta( this.idOrName( element ) ), 1028 | describer = $( element ).attr( "aria-describedby" ), 1029 | selector = "label[for='" + name + "'], label[for='" + name + "'] *"; 1030 | 1031 | // 'aria-describedby' should directly reference the error element 1032 | if ( describer ) { 1033 | selector = selector + ", #" + this.escapeCssMeta( describer ) 1034 | .replace( /\s+/g, ", #" ); 1035 | } 1036 | 1037 | return this 1038 | .errors() 1039 | .filter( selector ); 1040 | }, 1041 | 1042 | // See https://api.jquery.com/category/selectors/, for CSS 1043 | // meta-characters that should be escaped in order to be used with JQuery 1044 | // as a literal part of a name/id or any selector. 1045 | escapeCssMeta: function( string ) { 1046 | return string.replace( /([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1" ); 1047 | }, 1048 | 1049 | idOrName: function( element ) { 1050 | return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name ); 1051 | }, 1052 | 1053 | validationTargetFor: function( element ) { 1054 | 1055 | // If radio/checkbox, validate first element in group instead 1056 | if ( this.checkable( element ) ) { 1057 | element = this.findByName( element.name ); 1058 | } 1059 | 1060 | // Always apply ignore filter 1061 | return $( element ).not( this.settings.ignore )[ 0 ]; 1062 | }, 1063 | 1064 | checkable: function( element ) { 1065 | return ( /radio|checkbox/i ).test( element.type ); 1066 | }, 1067 | 1068 | findByName: function( name ) { 1069 | return $( this.currentForm ).find( "[name='" + this.escapeCssMeta( name ) + "']" ); 1070 | }, 1071 | 1072 | getLength: function( value, element ) { 1073 | switch ( element.nodeName.toLowerCase() ) { 1074 | case "select": 1075 | return $( "option:selected", element ).length; 1076 | case "input": 1077 | if ( this.checkable( element ) ) { 1078 | return this.findByName( element.name ).filter( ":checked" ).length; 1079 | } 1080 | } 1081 | return value.length; 1082 | }, 1083 | 1084 | depend: function( param, element ) { 1085 | return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true; 1086 | }, 1087 | 1088 | dependTypes: { 1089 | "boolean": function( param ) { 1090 | return param; 1091 | }, 1092 | "string": function( param, element ) { 1093 | return !!$( param, element.form ).length; 1094 | }, 1095 | "function": function( param, element ) { 1096 | return param( element ); 1097 | } 1098 | }, 1099 | 1100 | optional: function( element ) { 1101 | var val = this.elementValue( element ); 1102 | return !$.validator.methods.required.call( this, val, element ) && "dependency-mismatch"; 1103 | }, 1104 | 1105 | startRequest: function( element ) { 1106 | if ( !this.pending[ element.name ] ) { 1107 | this.pendingRequest++; 1108 | $( element ).addClass( this.settings.pendingClass ); 1109 | this.pending[ element.name ] = true; 1110 | } 1111 | }, 1112 | 1113 | stopRequest: function( element, valid ) { 1114 | this.pendingRequest--; 1115 | 1116 | // Sometimes synchronization fails, make sure pendingRequest is never < 0 1117 | if ( this.pendingRequest < 0 ) { 1118 | this.pendingRequest = 0; 1119 | } 1120 | delete this.pending[ element.name ]; 1121 | $( element ).removeClass( this.settings.pendingClass ); 1122 | if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) { 1123 | $( this.currentForm ).submit(); 1124 | 1125 | // Remove the hidden input that was used as a replacement for the 1126 | // missing submit button. The hidden input is added by `handle()` 1127 | // to ensure that the value of the used submit button is passed on 1128 | // for scripted submits triggered by this method 1129 | if ( this.submitButton ) { 1130 | $( "input:hidden[name='" + this.submitButton.name + "']", this.currentForm ).remove(); 1131 | } 1132 | 1133 | this.formSubmitted = false; 1134 | } else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) { 1135 | $( this.currentForm ).triggerHandler( "invalid-form", [ this ] ); 1136 | this.formSubmitted = false; 1137 | } 1138 | }, 1139 | 1140 | previousValue: function( element, method ) { 1141 | method = typeof method === "string" && method || "remote"; 1142 | 1143 | return $.data( element, "previousValue" ) || $.data( element, "previousValue", { 1144 | old: null, 1145 | valid: true, 1146 | message: this.defaultMessage( element, { method: method } ) 1147 | } ); 1148 | }, 1149 | 1150 | // Cleans up all forms and elements, removes validator-specific events 1151 | destroy: function() { 1152 | this.resetForm(); 1153 | 1154 | $( this.currentForm ) 1155 | .off( ".validate" ) 1156 | .removeData( "validator" ) 1157 | .find( ".validate-equalTo-blur" ) 1158 | .off( ".validate-equalTo" ) 1159 | .removeClass( "validate-equalTo-blur" ) 1160 | .find( ".validate-lessThan-blur" ) 1161 | .off( ".validate-lessThan" ) 1162 | .removeClass( "validate-lessThan-blur" ) 1163 | .find( ".validate-lessThanEqual-blur" ) 1164 | .off( ".validate-lessThanEqual" ) 1165 | .removeClass( "validate-lessThanEqual-blur" ) 1166 | .find( ".validate-greaterThanEqual-blur" ) 1167 | .off( ".validate-greaterThanEqual" ) 1168 | .removeClass( "validate-greaterThanEqual-blur" ) 1169 | .find( ".validate-greaterThan-blur" ) 1170 | .off( ".validate-greaterThan" ) 1171 | .removeClass( "validate-greaterThan-blur" ); 1172 | } 1173 | 1174 | }, 1175 | 1176 | classRuleSettings: { 1177 | required: { required: true }, 1178 | email: { email: true }, 1179 | url: { url: true }, 1180 | date: { date: true }, 1181 | dateISO: { dateISO: true }, 1182 | number: { number: true }, 1183 | digits: { digits: true }, 1184 | creditcard: { creditcard: true } 1185 | }, 1186 | 1187 | addClassRules: function( className, rules ) { 1188 | if ( className.constructor === String ) { 1189 | this.classRuleSettings[ className ] = rules; 1190 | } else { 1191 | $.extend( this.classRuleSettings, className ); 1192 | } 1193 | }, 1194 | 1195 | classRules: function( element ) { 1196 | var rules = {}, 1197 | classes = $( element ).attr( "class" ); 1198 | 1199 | if ( classes ) { 1200 | $.each( classes.split( " " ), function() { 1201 | if ( this in $.validator.classRuleSettings ) { 1202 | $.extend( rules, $.validator.classRuleSettings[ this ] ); 1203 | } 1204 | } ); 1205 | } 1206 | return rules; 1207 | }, 1208 | 1209 | normalizeAttributeRule: function( rules, type, method, value ) { 1210 | 1211 | // Convert the value to a number for number inputs, and for text for backwards compability 1212 | // allows type="date" and others to be compared as strings 1213 | if ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) { 1214 | value = Number( value ); 1215 | 1216 | // Support Opera Mini, which returns NaN for undefined minlength 1217 | if ( isNaN( value ) ) { 1218 | value = undefined; 1219 | } 1220 | } 1221 | 1222 | if ( value || value === 0 ) { 1223 | rules[ method ] = value; 1224 | } else if ( type === method && type !== "range" ) { 1225 | 1226 | // Exception: the jquery validate 'range' method 1227 | // does not test for the html5 'range' type 1228 | rules[ method ] = true; 1229 | } 1230 | }, 1231 | 1232 | attributeRules: function( element ) { 1233 | var rules = {}, 1234 | $element = $( element ), 1235 | type = element.getAttribute( "type" ), 1236 | method, value; 1237 | 1238 | for ( method in $.validator.methods ) { 1239 | 1240 | // Support for in both html5 and older browsers 1241 | if ( method === "required" ) { 1242 | value = element.getAttribute( method ); 1243 | 1244 | // Some browsers return an empty string for the required attribute 1245 | // and non-HTML5 browsers might have required="" markup 1246 | if ( value === "" ) { 1247 | value = true; 1248 | } 1249 | 1250 | // Force non-HTML5 browsers to return bool 1251 | value = !!value; 1252 | } else { 1253 | value = $element.attr( method ); 1254 | } 1255 | 1256 | this.normalizeAttributeRule( rules, type, method, value ); 1257 | } 1258 | 1259 | // 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs 1260 | if ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) { 1261 | delete rules.maxlength; 1262 | } 1263 | 1264 | return rules; 1265 | }, 1266 | 1267 | dataRules: function( element ) { 1268 | var rules = {}, 1269 | $element = $( element ), 1270 | type = element.getAttribute( "type" ), 1271 | method, value; 1272 | 1273 | for ( method in $.validator.methods ) { 1274 | value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() ); 1275 | 1276 | // Cast empty attributes like `data-rule-required` to `true` 1277 | if ( value === "" ) { 1278 | value = true; 1279 | } 1280 | 1281 | this.normalizeAttributeRule( rules, type, method, value ); 1282 | } 1283 | return rules; 1284 | }, 1285 | 1286 | staticRules: function( element ) { 1287 | var rules = {}, 1288 | validator = $.data( element.form, "validator" ); 1289 | 1290 | if ( validator.settings.rules ) { 1291 | rules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {}; 1292 | } 1293 | return rules; 1294 | }, 1295 | 1296 | normalizeRules: function( rules, element ) { 1297 | 1298 | // Handle dependency check 1299 | $.each( rules, function( prop, val ) { 1300 | 1301 | // Ignore rule when param is explicitly false, eg. required:false 1302 | if ( val === false ) { 1303 | delete rules[ prop ]; 1304 | return; 1305 | } 1306 | if ( val.param || val.depends ) { 1307 | var keepRule = true; 1308 | switch ( typeof val.depends ) { 1309 | case "string": 1310 | keepRule = !!$( val.depends, element.form ).length; 1311 | break; 1312 | case "function": 1313 | keepRule = val.depends.call( element, element ); 1314 | break; 1315 | } 1316 | if ( keepRule ) { 1317 | rules[ prop ] = val.param !== undefined ? val.param : true; 1318 | } else { 1319 | $.data( element.form, "validator" ).resetElements( $( element ) ); 1320 | delete rules[ prop ]; 1321 | } 1322 | } 1323 | } ); 1324 | 1325 | // Evaluate parameters 1326 | $.each( rules, function( rule, parameter ) { 1327 | rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter; 1328 | } ); 1329 | 1330 | // Clean number parameters 1331 | $.each( [ "minlength", "maxlength" ], function() { 1332 | if ( rules[ this ] ) { 1333 | rules[ this ] = Number( rules[ this ] ); 1334 | } 1335 | } ); 1336 | $.each( [ "rangelength", "range" ], function() { 1337 | var parts; 1338 | if ( rules[ this ] ) { 1339 | if ( $.isArray( rules[ this ] ) ) { 1340 | rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ]; 1341 | } else if ( typeof rules[ this ] === "string" ) { 1342 | parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ ); 1343 | rules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ]; 1344 | } 1345 | } 1346 | } ); 1347 | 1348 | if ( $.validator.autoCreateRanges ) { 1349 | 1350 | // Auto-create ranges 1351 | if ( rules.min != null && rules.max != null ) { 1352 | rules.range = [ rules.min, rules.max ]; 1353 | delete rules.min; 1354 | delete rules.max; 1355 | } 1356 | if ( rules.minlength != null && rules.maxlength != null ) { 1357 | rules.rangelength = [ rules.minlength, rules.maxlength ]; 1358 | delete rules.minlength; 1359 | delete rules.maxlength; 1360 | } 1361 | } 1362 | 1363 | return rules; 1364 | }, 1365 | 1366 | // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} 1367 | normalizeRule: function( data ) { 1368 | if ( typeof data === "string" ) { 1369 | var transformed = {}; 1370 | $.each( data.split( /\s/ ), function() { 1371 | transformed[ this ] = true; 1372 | } ); 1373 | data = transformed; 1374 | } 1375 | return data; 1376 | }, 1377 | 1378 | // https://jqueryvalidation.org/jQuery.validator.addMethod/ 1379 | addMethod: function( name, method, message ) { 1380 | $.validator.methods[ name ] = method; 1381 | $.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ]; 1382 | if ( method.length < 3 ) { 1383 | $.validator.addClassRules( name, $.validator.normalizeRule( name ) ); 1384 | } 1385 | }, 1386 | 1387 | // https://jqueryvalidation.org/jQuery.validator.methods/ 1388 | methods: { 1389 | 1390 | // https://jqueryvalidation.org/required-method/ 1391 | required: function( value, element, param ) { 1392 | 1393 | // Check if dependency is met 1394 | if ( !this.depend( param, element ) ) { 1395 | return "dependency-mismatch"; 1396 | } 1397 | if ( element.nodeName.toLowerCase() === "select" ) { 1398 | 1399 | // Could be an array for select-multiple or a string, both are fine this way 1400 | var val = $( element ).val(); 1401 | return val && val.length > 0; 1402 | } 1403 | if ( this.checkable( element ) ) { 1404 | return this.getLength( value, element ) > 0; 1405 | } 1406 | return value !== undefined && value !== null && value.length > 0; 1407 | }, 1408 | 1409 | // https://jqueryvalidation.org/email-method/ 1410 | email: function( value, element ) { 1411 | 1412 | // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address 1413 | // Retrieved 2014-01-14 1414 | // If you have a problem with this implementation, report a bug against the above spec 1415 | // Or use custom methods to implement your own email validation 1416 | return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value ); 1417 | }, 1418 | 1419 | // https://jqueryvalidation.org/url-method/ 1420 | url: function( value, element ) { 1421 | 1422 | // Copyright (c) 2010-2013 Diego Perini, MIT licensed 1423 | // https://gist.github.com/dperini/729294 1424 | // see also https://mathiasbynens.be/demo/url-regex 1425 | // modified to allow protocol-relative URLs 1426 | return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); 1427 | }, 1428 | 1429 | // https://jqueryvalidation.org/date-method/ 1430 | date: ( function() { 1431 | var called = false; 1432 | 1433 | return function( value, element ) { 1434 | if ( !called ) { 1435 | called = true; 1436 | if ( this.settings.debug && window.console ) { 1437 | console.warn( 1438 | "The `date` method is deprecated and will be removed in version '2.0.0'.\n" + 1439 | "Please don't use it, since it relies on the Date constructor, which\n" + 1440 | "behaves very differently across browsers and locales. Use `dateISO`\n" + 1441 | "instead or one of the locale specific methods in `localizations/`\n" + 1442 | "and `additional-methods.js`." 1443 | ); 1444 | } 1445 | } 1446 | 1447 | return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() ); 1448 | }; 1449 | }() ), 1450 | 1451 | // https://jqueryvalidation.org/dateISO-method/ 1452 | dateISO: function( value, element ) { 1453 | return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value ); 1454 | }, 1455 | 1456 | // https://jqueryvalidation.org/number-method/ 1457 | number: function( value, element ) { 1458 | return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value ); 1459 | }, 1460 | 1461 | // https://jqueryvalidation.org/digits-method/ 1462 | digits: function( value, element ) { 1463 | return this.optional( element ) || /^\d+$/.test( value ); 1464 | }, 1465 | 1466 | // https://jqueryvalidation.org/minlength-method/ 1467 | minlength: function( value, element, param ) { 1468 | var length = $.isArray( value ) ? value.length : this.getLength( value, element ); 1469 | return this.optional( element ) || length >= param; 1470 | }, 1471 | 1472 | // https://jqueryvalidation.org/maxlength-method/ 1473 | maxlength: function( value, element, param ) { 1474 | var length = $.isArray( value ) ? value.length : this.getLength( value, element ); 1475 | return this.optional( element ) || length <= param; 1476 | }, 1477 | 1478 | // https://jqueryvalidation.org/rangelength-method/ 1479 | rangelength: function( value, element, param ) { 1480 | var length = $.isArray( value ) ? value.length : this.getLength( value, element ); 1481 | return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] ); 1482 | }, 1483 | 1484 | // https://jqueryvalidation.org/min-method/ 1485 | min: function( value, element, param ) { 1486 | return this.optional( element ) || value >= param; 1487 | }, 1488 | 1489 | // https://jqueryvalidation.org/max-method/ 1490 | max: function( value, element, param ) { 1491 | return this.optional( element ) || value <= param; 1492 | }, 1493 | 1494 | // https://jqueryvalidation.org/range-method/ 1495 | range: function( value, element, param ) { 1496 | return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] ); 1497 | }, 1498 | 1499 | // https://jqueryvalidation.org/step-method/ 1500 | step: function( value, element, param ) { 1501 | var type = $( element ).attr( "type" ), 1502 | errorMessage = "Step attribute on input type " + type + " is not supported.", 1503 | supportedTypes = [ "text", "number", "range" ], 1504 | re = new RegExp( "\\b" + type + "\\b" ), 1505 | notSupported = type && !re.test( supportedTypes.join() ), 1506 | decimalPlaces = function( num ) { 1507 | var match = ( "" + num ).match( /(?:\.(\d+))?$/ ); 1508 | if ( !match ) { 1509 | return 0; 1510 | } 1511 | 1512 | // Number of digits right of decimal point. 1513 | return match[ 1 ] ? match[ 1 ].length : 0; 1514 | }, 1515 | toInt = function( num ) { 1516 | return Math.round( num * Math.pow( 10, decimals ) ); 1517 | }, 1518 | valid = true, 1519 | decimals; 1520 | 1521 | // Works only for text, number and range input types 1522 | // TODO find a way to support input types date, datetime, datetime-local, month, time and week 1523 | if ( notSupported ) { 1524 | throw new Error( errorMessage ); 1525 | } 1526 | 1527 | decimals = decimalPlaces( param ); 1528 | 1529 | // Value can't have too many decimals 1530 | if ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) { 1531 | valid = false; 1532 | } 1533 | 1534 | return this.optional( element ) || valid; 1535 | }, 1536 | 1537 | // https://jqueryvalidation.org/equalTo-method/ 1538 | equalTo: function( value, element, param ) { 1539 | 1540 | // Bind to the blur event of the target in order to revalidate whenever the target field is updated 1541 | var target = $( param ); 1542 | if ( this.settings.onfocusout && target.not( ".validate-equalTo-blur" ).length ) { 1543 | target.addClass( "validate-equalTo-blur" ).on( "blur.validate-equalTo", function() { 1544 | $( element ).valid(); 1545 | } ); 1546 | } 1547 | return value === target.val(); 1548 | }, 1549 | 1550 | // https://jqueryvalidation.org/remote-method/ 1551 | remote: function( value, element, param, method ) { 1552 | if ( this.optional( element ) ) { 1553 | return "dependency-mismatch"; 1554 | } 1555 | 1556 | method = typeof method === "string" && method || "remote"; 1557 | 1558 | var previous = this.previousValue( element, method ), 1559 | validator, data, optionDataString; 1560 | 1561 | if ( !this.settings.messages[ element.name ] ) { 1562 | this.settings.messages[ element.name ] = {}; 1563 | } 1564 | previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ]; 1565 | this.settings.messages[ element.name ][ method ] = previous.message; 1566 | 1567 | param = typeof param === "string" && { url: param } || param; 1568 | optionDataString = $.param( $.extend( { data: value }, param.data ) ); 1569 | if ( previous.old === optionDataString ) { 1570 | return previous.valid; 1571 | } 1572 | 1573 | previous.old = optionDataString; 1574 | validator = this; 1575 | this.startRequest( element ); 1576 | data = {}; 1577 | data[ element.name ] = value; 1578 | $.ajax( $.extend( true, { 1579 | mode: "abort", 1580 | port: "validate" + element.name, 1581 | dataType: "json", 1582 | data: data, 1583 | context: validator.currentForm, 1584 | success: function( response ) { 1585 | var valid = response === true || response === "true", 1586 | errors, message, submitted; 1587 | 1588 | validator.settings.messages[ element.name ][ method ] = previous.originalMessage; 1589 | if ( valid ) { 1590 | submitted = validator.formSubmitted; 1591 | validator.resetInternals(); 1592 | validator.toHide = validator.errorsFor( element ); 1593 | validator.formSubmitted = submitted; 1594 | validator.successList.push( element ); 1595 | validator.invalid[ element.name ] = false; 1596 | validator.showErrors(); 1597 | } else { 1598 | errors = {}; 1599 | message = response || validator.defaultMessage( element, { method: method, parameters: value } ); 1600 | errors[ element.name ] = previous.message = message; 1601 | validator.invalid[ element.name ] = true; 1602 | validator.showErrors( errors ); 1603 | } 1604 | previous.valid = valid; 1605 | validator.stopRequest( element, valid ); 1606 | } 1607 | }, param ) ); 1608 | return "pending"; 1609 | } 1610 | } 1611 | 1612 | } ); 1613 | 1614 | // Ajax mode: abort 1615 | // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 1616 | // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 1617 | 1618 | var pendingRequests = {}, 1619 | ajax; 1620 | 1621 | // Use a prefilter if available (1.5+) 1622 | if ( $.ajaxPrefilter ) { 1623 | $.ajaxPrefilter( function( settings, _, xhr ) { 1624 | var port = settings.port; 1625 | if ( settings.mode === "abort" ) { 1626 | if ( pendingRequests[ port ] ) { 1627 | pendingRequests[ port ].abort(); 1628 | } 1629 | pendingRequests[ port ] = xhr; 1630 | } 1631 | } ); 1632 | } else { 1633 | 1634 | // Proxy ajax 1635 | ajax = $.ajax; 1636 | $.ajax = function( settings ) { 1637 | var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, 1638 | port = ( "port" in settings ? settings : $.ajaxSettings ).port; 1639 | if ( mode === "abort" ) { 1640 | if ( pendingRequests[ port ] ) { 1641 | pendingRequests[ port ].abort(); 1642 | } 1643 | pendingRequests[ port ] = ajax.apply( this, arguments ); 1644 | return pendingRequests[ port ]; 1645 | } 1646 | return ajax.apply( this, arguments ); 1647 | }; 1648 | } 1649 | return $; 1650 | })); 1651 | --------------------------------------------------------------------------------