I am pretty new to Jquery, I am using validation rule against my textbox. The problem is when i mark textbox is mandatory n user doesn't input any value then it doesn't show any validation message. I have associated another validation message for textbox tht the value shu be in range and which works when user provides any input.
$.validator.addMethod("requiredRangeFunction", function(value, element) {debugger
$.validator.messages["requiredRangeFunction"] =
jQuery.format(
$(element).attr('ErrorMessage') ? $(element).attr('ErrorMessage') : "Please enter the value between {0} and {1}",
$(element).attr('MinValue'),
$(element).attr('MaxValue')
);
开发者_高级运维
return this.optional(element) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
}, "Please enter valid value.");
issue is with this.optional(element) which returns dependency mismatch when user doesnt provide any input.
my textbox can be optional too so i require to call this.optional(element)
Testing for (this.optional(element) == true) worked for me.
So in your case it would be:
return (this.optional(element) == true) || ((value > Number($(element).attr('MinValue')) && (value < Number($(element).attr('MaxValue')))));
(Opposite from Nav's solution)
return (this.optional(element) != false) || test;
this works for sure.
You can replace the
return this.optional(element) || <test condition>
by
var r = $(element).rules();
var req=(this.objectLength(r))?r.required:false;
return !req || <test condition>;
May be it will be enouth:
var req=r.required; // true, false or undefined.
Assume that undefined is the same as false for our needs.
Optional means the user doesn't have to provide any input. If there is no input, it doesn't need to be validated.
精彩评论