85
85
86
86
var config = {
87
87
validationRuleAttribute : 'data-validation' ,
88
+ validationErrorMsgAttribute : 'data-validation-error-msg' , // define custom err msg inline with element
88
89
errorElementClass : 'error' , // Class that will be put on elements which value is invalid
89
90
borderColorOnError : 'red' ,
90
91
dateFormat : 'yyyy-mm-dd'
92
+
91
93
} ;
92
94
93
95
if ( settings ) {
155
157
borderColorOnError : 'red' , // Border color of elements which value is invalid, empty string to not change border color
156
158
errorMessageClass : 'jquery_form_error_message' , // class name of div containing error messages when validation fails
157
159
validationRuleAttribute : 'data-validation' , // name of the attribute holding the validation rules
160
+ validationErrorMsgAttribute : 'data-validation-error-msg' , // define custom err msg inline with element
158
161
errorMessagePosition : 'top' , // Can be either "top" or "element"
159
162
scrollToTopOnError : true ,
160
163
dateFormat : 'yyyy-mm-dd'
@@ -759,7 +762,9 @@ jQueryFormUtils.validateDomain = function(val) {
759
762
jQueryFormUtils . validateInput = function ( el , language , config , form ) {
760
763
var value = jQuery . trim ( el . val ( ) ) ;
761
764
var validationRules = el . attr ( config . validationRuleAttribute ) ;
762
-
765
+ // see if form element has inline err msg attribute
766
+ var validationErrorMsg = el . attr ( config . validationErrorMsgAttribute ) ;
767
+
763
768
if ( typeof validationRules != 'undefined' && validationRules !== null ) {
764
769
765
770
/**
@@ -775,98 +780,99 @@ jQueryFormUtils.validateInput = function(el, language, config, form) {
775
780
776
781
// Required
777
782
if ( validationRules . indexOf ( 'required' ) > - 1 && value === '' ) {
778
- return language . requiredFields ;
783
+ // return custom inline err msg if defined
784
+ return validationErrorMsg || language . requiredFields ;
779
785
}
780
786
781
787
// Min length
782
788
if ( validationRules . indexOf ( 'validate_min_length' ) > - 1 && value . length < getAttributeInteger ( validationRules , 'length' ) ) {
783
- return language . toShortStart + getAttributeInteger ( validationRules , 'length' ) + language . toShortEnd ;
789
+ return validationErrorMsg || language . tooShortStart + getAttributeInteger ( validationRules , 'length' ) + language . tooShortEnd ;
784
790
}
785
791
786
792
// Max length
787
793
if ( validationRules . indexOf ( 'validate_max_length' ) > - 1 && value . length > getAttributeInteger ( validationRules , 'length' ) ) {
788
- return language . toLongStart + getAttributeInteger ( validationRules , 'length' ) + language . toLongEnd ;
794
+ return validationErrorMsg || language . tooLongStart + getAttributeInteger ( validationRules , 'length' ) + language . tooLongEnd ;
789
795
}
790
796
791
797
// Length range
792
798
if ( validationRules . indexOf ( 'validate_length' ) > - 1 ) {
793
799
var range = getAttributeInteger ( validationRules , 'length' ) . split ( '-' ) ;
794
800
if ( value . length < parseInt ( range [ 0 ] , 10 ) || value . length > parseInt ( range [ 1 ] , 10 ) ) {
795
- return language . badLength + getAttributeInteger ( validationRules , 'length' ) + language . toLongEnd ;
801
+ return validationErrorMsg || language . badLength + getAttributeInteger ( validationRules , 'length' ) + language . tooLongEnd ;
796
802
}
797
803
}
798
804
799
805
// Email
800
806
if ( validationRules . indexOf ( 'validate_email' ) > - 1 && ! jQueryFormUtils . validateEmail ( value ) ) {
801
- return language . badEmail ;
807
+ return validationErrorMsg || language . badEmail ;
802
808
}
803
809
804
810
// Domain
805
811
else if ( validationRules . indexOf ( 'validate_domain' ) > - 1 && ! jQueryFormUtils . validateDomain ( value ) ) {
806
- return language . badDomain ;
812
+ return validationErrorMsg || language . badDomain ;
807
813
}
808
814
809
815
// Url
810
816
else if ( validationRules . indexOf ( 'validate_url' ) > - 1 && ! jQueryFormUtils . validateUrl ( value ) ) {
811
- return language . badUrl ;
817
+ return validationErrorMsg || language . badUrl ;
812
818
}
813
819
814
820
// Float
815
821
else if ( validationRules . indexOf ( 'validate_float' ) > - 1 && ! jQueryFormUtils . validateFloat ( value ) ) {
816
- return language . badFloat ;
822
+ return validationErrorMsg || language . badFloat ;
817
823
}
818
824
819
825
// Integer
820
826
else if ( validationRules . indexOf ( 'validate_int' ) > - 1 && ! jQueryFormUtils . validateInteger ( value ) ) {
821
- return language . badInt ;
827
+ return validationErrorMsg || language . badInt ;
822
828
}
823
829
824
830
// Time
825
831
else if ( validationRules . indexOf ( 'validate_time' ) > - 1 && ! jQueryFormUtils . validateTime ( value ) ) {
826
- return language . badTime ;
832
+ return validationErrorMsg || language . badTime ;
827
833
}
828
834
829
835
// Date
830
836
else if ( validationRules . indexOf ( 'validate_date' ) > - 1 && ! jQueryFormUtils . parseDate ( value , config . dateFormat ) ) {
831
- return language . badDate ;
837
+ return validationErrorMsg || language . badDate ;
832
838
}
833
839
834
840
// Birth date
835
841
else if ( validationRules . indexOf ( 'validate_birthdate' ) > - 1 && ! jQueryFormUtils . validateBirthdate ( value , config . dateFormat ) ) {
836
- return language . badDate ;
842
+ return validationErrorMsg || language . badDate ;
837
843
}
838
844
839
845
// Phone number
840
846
else if ( validationRules . indexOf ( 'validate_phone' ) > - 1 && ! jQueryFormUtils . validatePhoneNumber ( value ) ) {
841
- return language . badTelephone ;
847
+ return validationErrorMsg || language . badTelephone ;
842
848
}
843
849
844
850
// Swedish phone number
845
851
else if ( validationRules . indexOf ( 'validate_swemobile' ) > - 1 && ! jQueryFormUtils . validateSwedishMobileNumber ( value ) ) {
846
- return language . badTelephone ;
852
+ return validationErrorMsg || language . badTelephone ;
847
853
}
848
854
849
855
// simple spam check
850
856
else if ( validationRules . indexOf ( 'validate_spamcheck' ) > - 1 && ! jQueryFormUtils . simpleSpamCheck ( value , validationRules ) ) {
851
- return language . badSecurityAnswer ;
857
+ return validationErrorMsg || language . badSecurityAnswer ;
852
858
}
853
859
854
860
// UK VAT Number check
855
861
else if ( validationRules . indexOf ( 'validate_ukvatnumber' ) > - 1 && ! jQueryFormUtils . validateUKVATNumber ( value ) ) {
856
- return language . badUKVatAnswer ;
862
+ return validationErrorMsg || language . badUKVatAnswer ;
857
863
}
858
864
859
865
// Custom regexp validation
860
866
if ( validationRules . indexOf ( 'validate_custom' ) > - 1 && validationRules . indexOf ( 'regexp/' ) > - 1 ) {
861
867
var regexp = new RegExp ( validationRules . split ( 'regexp/' ) [ 1 ] . split ( '/' ) [ 0 ] ) ;
862
868
if ( ! regexp . test ( value ) ) {
863
- return language . badCustomVal ;
869
+ return validationErrorMsg || language . badCustomVal ;
864
870
}
865
871
}
866
872
867
873
// Swedish social security number
868
874
if ( validationRules . indexOf ( 'validate_swesc' ) > - 1 && ! jQueryFormUtils . validateSwedishSecurityNumber ( value ) ) {
869
- return language . badSecurityNumber ;
875
+ return validationErrorMsg || language . badSecurityNumber ;
870
876
}
871
877
872
878
// confirmation
@@ -877,7 +883,7 @@ jQueryFormUtils.validateInput = function(el, language, config, form) {
877
883
conf = confInput . val ( ) ;
878
884
}
879
885
if ( value !== conf ) {
880
- return language . notConfirmed ;
886
+ return validationErrorMsg || language . notConfirmed ;
881
887
}
882
888
}
883
889
}
@@ -898,10 +904,10 @@ jQueryFormUtils.LANG = {
898
904
badTelephone : 'You have not given a correct phone number' ,
899
905
badSecurityAnswer : 'You have not given a correct answer to the security question' ,
900
906
badDate : 'You have not given a correct date' ,
901
- toLongStart : 'You have given an answer longer than ' ,
902
- toLongEnd : ' characters' ,
903
- toShortStart : 'You have given an answer shorter than ' ,
904
- toShortEnd : ' characters' ,
907
+ tooLongStart : 'You have given an answer longer than ' ,
908
+ tooLongEnd : ' characters' ,
909
+ tooShortStart : 'You have given an answer shorter than ' ,
910
+ tooShortEnd : ' characters' ,
905
911
badLength : 'You have to give an answer between ' ,
906
912
notConfirmed : 'Values could not be confirmed' ,
907
913
badDomain : 'Incorrect domain value' ,
0 commit comments