EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: jega on May 18, 2022, 03:04:57 PM



Title: [SOLVED]Dynamic mesage in validator
Post by: jega on May 18, 2022, 03:04:57 PM
Hi.

Have this extended validType. It work fine, but i want having the message matching the 4 cases

Tried several things, but with no luck.  

validType: 'passwordCheck[4,8]',

$.extend($.fn.validatebox.defaults.rules, {
   passwordCheck: {
      validator: function(value,param){
         var checkType = parseInt(param[0]);
         var minChars = parseInt(param[1]);
         switch (checkType){
            case 1:
               //Minimum [minChars] characters, at least one letter, lower or upper case :
               var patt = new RegExp("^(?=.*?[a-zA-Z]).{"+minChars+",}$")
               var res = patt.test(value)
               return res;
               break
            case 2:
               //Minimum [minChars] characters, at least one letter (lower/upper) and one number:
               var patt = new RegExp("^(?=.*?[a-zA-Z])(?=.*?[0-9]).{"+minChars+",}$")
               var res = patt.test(value)
               return res;
               break
            case 3:
               //Minimum [minChars] characters, at least one letter and one Upper case:
               var patt = new RegExp("^(?=.*?[a-z])(?=.*?[A-Z]).{"+minChars+",}$")
               var res = patt.test(value)
               return res;
               break
            case 4:
               //Minimum [minChars] characters, at least one letter and one Upper case and one number:
               var patt = new RegExp("^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9]).{"+minChars+",}$")
               var res = patt.test(value)
               return res;
               break
         }
      },
      message: 'Minimum {1} characters, at least one letter, one Upper case and one number'
   }
})


Regards
Jesper


Title: Re: Dynamic mesage in validator
Post by: jarry on May 18, 2022, 08:34:46 PM
Please try this code.
Code:
$.extend($.fn.validatebox.defaults.rules, {
passwordCheck: {
validator: function (value, param) {
var checkType = parseInt(param[0]);
var minChars = parseInt(param[1]);
switch (checkType) {
case 1:
//Minimum [minChars] characters, at least one letter, lower or upper case :
var patt = new RegExp("^(?=.*?[a-zA-Z]).{" + minChars + ",}$")
var res = patt.test(value)
$.fn.validatebox.defaults.rules.passwordCheck.message = 'Minimum {1} characters, at least one letter, lower or upper case'
return res;
break
case 2:
//Minimum [minChars] characters, at least one letter (lower/upper) and one number:
var patt = new RegExp("^(?=.*?[a-zA-Z])(?=.*?[0-9]).{" + minChars + ",}$")
var res = patt.test(value)
$.fn.validatebox.defaults.rules.passwordCheck.message = 'Minimum {1} characters, at least one letter (lower/upper) and one number'
return res;
break
case 3:
//Minimum [minChars] characters, at least one letter and one Upper case:
var patt = new RegExp("^(?=.*?[a-z])(?=.*?[A-Z]).{" + minChars + ",}$")
var res = patt.test(value)
$.fn.validatebox.defaults.rules.passwordCheck.message = 'Minimum {1} characters, at least one letter and one Upper case'
return res;
break
case 4:
//Minimum [minChars] characters, at least one letter and one Upper case and one number:
var patt = new RegExp("^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9]).{" + minChars + ",}$")
var res = patt.test(value)
$.fn.validatebox.defaults.rules.passwordCheck.message = 'Minimum {1} characters, at least one letter and one Upper case and one number'
return res;
break
}
},
message: 'Minimum {1} characters, at least one letter, one Upper case and one number'
}
})


Title: Re: Dynamic mesage in validator
Post by: jega on May 19, 2022, 12:02:16 AM
Hi Jarry.

Thanks for solution.

Works exactly as expected.


Jesper