Javascript jquery使用条件自定义方法验证。条件未按预期工作

Javascript jquery使用条件自定义方法验证。条件未按预期工作,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我需要验证选择框值是否大于零,只有在存在其他条件时。我已经准备好了一系列的东西,从我所能说的来看,它应该是有效的,但事实并非如此 我的自定义验证方法: jQuery.validator.addMethod("greaterThanZero", function(value, element) { return this.optional(element) || (parseFloat(value) > 0); }, "* Amount must be greater than ze

我需要验证选择框值是否大于零,只有在存在其他条件时。我已经准备好了一系列的东西,从我所能说的来看,它应该是有效的,但事实并非如此

我的自定义验证方法:

jQuery.validator.addMethod("greaterThanZero", function(value, element) {
    return this.optional(element) || (parseFloat(value) > 0);
}, "* Amount must be greater than zero");
这很好(因为它验证了地址\u stateid大于零):
address\u stateid:{“greaterThanZero”:true},

这也可以正常工作(因为它不会验证地址\u stateid是否大于零):
address\u stateid:{“greaterThanZero”:false},

但是,当我将true/false更改为条件时,例如,它的行为就像它是true一样,而与require_state的值无关

address_stateid: { "greaterThanZero":function(){return require_state;} },//ALWAYS VALIDATES AS IF require_state IS TRUE
根据对其他字段的选择,require_state值设置为true或false。当这种情况发生变化时,我会将'require_state'的值输出到控制台,并且可以看到即使将其设置为false,条件验证也会启动,但它不应该启动

有人能看出我做错了什么吗


谢谢检查这把小提琴,我想这会帮助你达到你的要求

var require_state = true;
jQuery.validator.addMethod("greaterThanZero", function(value, element) {
 return this.optional(element) || (parseFloat(value) > 0 ||   require_state);
}“*金额必须大于零”)